2011-01-11 80 views
0

模型結合只是不工作,我 - 我總是NULL通過控制器來了!任何想法的人?modelbinding在ASP.NET MVC剃刀引擎故障

羅布

這是我行動的簽名:

public ActionResult SearchForUser(SearchForUserModel m) 

這裏是我的剃鬚刀頭模型聲明:

@model WebOne.Models.StatusIndexModel

StatusIndexModel是一個包含SearchForUserModel的組合模型:

public class SearchForUserModel 
{ 
    [Required(ErrorMessage = "Search information required")] 
    [DisplayName("Contact Search")] 
    public string Search { get; set; } 
} 

這裏是我的剃刀:

@using (Html.BeginForm("SearchForUser", "Status")) 
    { 
    <div> 
      <div class="editor-field"> 
       @Html.TextBoxFor(m => m.searchForUserModel.Search) 
       <input type="submit" class="formbutton_small" value="Find" /> 
       <br /> 
       @Html.ValidationMessageFor(m => m.searchForUserModel.Search) 
      </div> 
    </div> 
    } 

這裏是生成的HTML:

<form action="/Status/SearchForUser" method="post">   
    <div> 
     <div class="editor-field"> 
      <input data-val="true" data-val-required="Search information required" id="searchForUserModel_Search" name="searchForUserModel.Search" type="text" value="" /> 
      <input type="submit" class="formbutton_small" value="Find" /> 
      <br /> 
      <span class="field-validation-valid" data-valmsg-for="searchForUserModel.Search" data-valmsg-replace="true"></span> 
     </div> 
    </div> 
</form> 

回答

0

你需要指定前綴:

public ActionResult SearchForUser(
    [Bind(Prefix="searchForUserModel")]SearchForUserModel m 
) 
+0

唉唉 - 是因爲我正在創建一個變量而不使用類定義?這是沒有必要以純老asp.net-MVC ... - 但你說得對,謝謝您!我需要再等8分鐘才能接受你的答案,因爲你太快了! – 2011-01-11 07:27:56