62,073
社区成员
发帖
与我相关
我的任务
分享
[HttpGet]
public ActionResult Index()
{
Employee emp=new Employee
{
Name="老员工"
};
return View(emp);
}
[HttpPost]
public ActionResult Index(Employee emp)
{
emp.Name = "新员工";
return View(emp);
}
ModelState.SetModelValue("Name", new ValueProviderResult("新员工", "新员工", null));
[HttpPost]
public ActionResult Index(Employee emp)
{
emp=new Employee();
emp.Name = "新员工";
return View(emp);
}
<%--<%=Html.Hidden("models.Index", current.ToString()) %>--%>
<input type ="hidden" name="models.index" value = "<%= current.ToString() %>"/>
我们可以用上面绿色的这行代码替换正常的这行代码,并同样执行以上的示例。在第一次执行的时候,一切都很正常,同样包括了在第一次PostBack中。但是第二次就出现了囧样了。if (isCheckBox) {
// Helpers that take isChecked as parameter should never look at ViewData
if (useViewData) {
isChecked = htmlHelper.EvalBoolean(name);
}
tagBuilder.MergeAttribute("value", Convert.ToString(value, CultureInfo.CurrentUICulture));
}
else {
tagBuilder.MergeAttribute("value", attemptedValue ?? ((useViewData) ? htmlHelper.EvalString(name) : Convert.ToString(value, CultureInfo.CurrentUICulture)));
}
以上这行代码的加粗部分就是导致这个问题的核心。