xar*_*xar 12 asp.net-mvc asp.net-mvc-3
该模型
class Address
{
public string Street { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
控制器动作
[HttpPost]
public ActionResult GetAddress(Address model)
{
if (!String.IsNullOrEmpty(model.Zip))
{
model.City = GetCityByZip(model.Zip);
}
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
风景
<div class="formrow">
@Html.LabelFor(model => model.City)
@Html.TextBoxFor(model => model.City)
@Html.ValidationMessageFor(model => model.City)
</div>
<div class="formrow">
@Html.LabelFor(model => model.State)
@Html.DropDownListFor(model => model.State, (IEnumerable<SelectListItem>)ViewBag.States, new { style = "width:217px;" })
@Html.ValidationMessageFor(model => model.State)
</div>
<div class="formrow">
@Html.LabelFor(model => model.Zip)
@Html.TextBoxFor(model => model.Zip)
@Html.ValidationMessageFor(model => model.Zip)
</div>
Run Code Online (Sandbox Code Playgroud)
问题是每当城市被修改时,它都不会反映在视图上.在调试期间,model.City
包含正确的值但它不会显示在视图上.即使是简单的事情@Html.TextBoxFor(model => model.City)
也不能显示正确的model.City
值.
Tom*_*mmy 27
当您更新并返回模型时,HtmlHelpers从模型状态而不是模型获取模型值.要更新并返回模型,请在post方法中添加以下代码行:
ModelState.Clear();
Run Code Online (Sandbox Code Playgroud)
或者您可以在ModelState中设置city的值:
ModelState["City"].Value = GetCityByZip(model.Zip);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9792 次 |
最近记录: |