簡體   English   中英

MVC-Post頁面部分 - 模型綁定失敗

[英]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.

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