繁体   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