我有一個非常簡單的模型奇怪的問題。當回發給控制器時,模型始終爲空。無法找到問題,我把它分開重建模型,一次添加一個訪問器。爲什麼名稱爲「State」的模型訪問器會導致模型發佈爲null?
我終於發現,有一個被稱爲「國家」串訪問和使用它的觀點導致了問題:
<%= Html.HiddenFor(m => m.State) %>
爲什麼會出現這種情況?
這裏是模型:
public class StudentSelectState
{
public string State { get; set; }
public int SelectedYear { get; set; }
public IDictionary<string, string> Years { get; set; }
}
這裏是控制器:
[HttpGet]
public ActionResult SelectStudent()
{
var StudentYears = absenceServices.GetStudentYears();
var state = new StudentSelectState {Years = Lists.StudentYearListToDictionary(StudentYears)};
return View(state);
}
[HttpPost]
public ActionResult SelectStudent(StudentSelectState state)
{
var StudentYears = absenceServices.GetStudentYears();
state.Years = Lists.StudentYearListToDictionary(StudentYears);
return View(state);
}
和這裏的觀點:
<% using (Html.BeginForm())
{%>
<%= Html.ValidationSummary() %>
<%= Html.TextBoxFor(m => m.State) %>
<%= Html.RadioButtonListFor(m => m.SelectedYear, Model.Years, "StudentYears") %>
<div style="clear: both;">
<input value="submit" />
</div>
<% } %>
的RadioButtonListFor是的HtmlHelper我寫來填充RadioButtonLists。
我使用Ninject 2.0將注入服務注入構造函數,但我不認爲這對此問題有影響。
我可以重命名訪問器,但我很好奇爲什麼會發生這種情況。
伯尼嗨,如果我改變訪問器名稱的狀態,並用手摸無其他代碼,模型返回填充(助手的radiobuttonlist將SelectedYear設置爲從單選按鈕列表中選擇的選項)。這就是我發佈這個問題的原因。 –