我有一个通用的“索引”页面,其中列出了给定表格的所有条目,并且有一个侧边栏允许过滤网格中的数据。我的模型如下:
public class GenericFormIndexModel
{
public IEnumerable<IGenericForm> Entries { get; set; }
public FormSearchQueryModel Query { get; set; }
}
在剃刀文件中,我有一个这样的 html:
@using (Html.BeginForm("Search", controllerName, FormMethod.Post, new { id = "fSearch" }))
{
@Html.HiddenFor(m => m.Query.PageIndex)
@Html.HiddenFor(m => m.Query.PageSize)
@Html.HiddenFor(m => m.Query.SortBy)
...etc
@Html.TextBoxFor(m => m.Query.SerialNumber, null, new { @class = "inputbox right-search-field" })
...etc
我已经定义了一个动作如下:
[HttpPost]
public virtual ActionResult Search(FormSearchQueryModel queryModel)
{
//Implementation ommited
}
现在,问题是表单中的值确实已提交,但未绑定到操作中的“queryModel”参数。我可以在 Request.Form["Query.Something"] 中看到它们。
我不想提交整个模型,因为没有必要发布所有条目以及其他任何内容。是否可以让 MVC 绑定到嵌套属性,或者我是否坚持使用 Reqest.Form[""] ?