簡體   English   中英

部分視圖中的強類型視圖不起作用

[英]Strongly typed view in partial view not working

我在強類型視圖中提交表單時遇到問題。 我的視圖是部分視圖,並嵌入到另一個沒有格式的強類型視圖中。 我的父視圖控制器返回類型JobsListViewModel。

public class JobsListViewModel
{
        public IEnumerable<JobPost> JobPosts { get; set; }
        public PagingInfo PagingInfo { get; set; }
        public SearchTerms searchTerms { get; set; }
 }

注意:JobPosts本身就是一個模型類,我在父視圖中使用它。 searchterms是我在局部視圖中使用的模型類。 我的局部視圖中的表單如下所示。

 @using (Html.BeginForm("List", "Search",  
          FormMethod.Post, new { @class="form-group text-right" }))
{
  @Html.TextBoxFor(x=>x.searchTerms.searchText,new {@class="form-control"})
  @Html.DropDownListFor(func=>func.searchTerms.JobFunction,ViewBag.JobFunction as SelectList,"Job Function",new {@class="dropdown"})
   ....                               

}

我的Post控制器方法如下所示。

[HttpPost]
public ViewResult List(SearchTerms search,int page = 1)
{
 ....
}

在我的表單commit上,它調用我的Post控制器方法。 但是,SearchTerms始終為空。 它完全不綁定。 請問有什么我可以做到的嗎? 與我的觀點是局部觀點有關嗎? 任何幫助,將不勝感激。

您部分是基於JobsListViewModel類型生成控件。 例如,您的文本框看起來像

<input type="text" name="searchTerms.searchText" ... />

但是您的發布僅返回typeof SearchTerms TYPEOF SearchTerms不包含財產searchTerms所以綁定失敗。

您可以使用[Bind]屬性的Prefix屬性有效地忽略前綴

[HttpPost]
public ViewResult List([Bind(Prefix="searchTerm")]SearchTerms search, int page = 1)

或者,您可以回發視圖基於的模型

[HttpPost]
public ViewResult List(JobsListViewModel model, int page = 1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM