![](/img/trans.png)
[英]ASP.NET MVC 2 Model Binding: How to debug a partially failed model binding on post back?
[英]MVC-Post Page Partially - Model Binding Fails
我試圖發布頁面的一部分並將其綁定到控制器上的視圖模型。 我的SearchVM
編輯器模板:
@Html.TextBoxFor(model => model.TestText, new { @class = "form-control ",
@placeholder = "TEXT" , @id="test" })
<input type="submit" value="Submit" />
Index.cshtml:
@using (Html.BeginForm("Search", "Pencil", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
@Html.EditorFor(model => model.SearchVM);
}
控制器:
public ActionResult Search(SearchVM vm)
{
// ...
}
當我在testText
文本框中鍵入內容並點擊提交時,我到達搜索操作但vm.TestText
為空,我無法將表單字段從編輯器模板綁定到視圖模型。 任何的想法?
發生這種情況是因為作為@model
傳遞給您的視圖的類包裝了SearchVM
類,當您調用@Html.EditorFor(model => model.SearchVM)
它使用前綴SearchVM
呈現輸入:
<input id="SearchVM_TestText" name="SearchVM.TestText" value="" ... />
反過來,當回發到控制器時, ModelBinder
將無法將其反序列化為SearchVM
你可以做的是使用這個EditorFor
重載:
@Html.EditorFor(model => model.SearchVM, "_SearchVM", "");
其中_SearchVM
是編輯器模板的名稱。 傳遞""
作為htmlFieldName
參數將刪除輸入上不需要的SearchVM
前綴。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.