特定のテーブルのすべてのエントリをリストする一般的な「インデックス」ページがあり、グリッド内のデータをフィルタリングできるサイドバーがあります。私のモデルは次のとおりです。
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[""] の使用にこだわっていますか?