我有处理信用卡交易的观点。它使用包含CreditCardNumber属性的简单模型。如果有错误,我会删除模型上的CreditCardNumber属性。问题是MVC继续并填写CreditCardNumber。我猜它正在查看发布的表单值,并试图帮助我重新填写它。我不想要这个。
如何制作MVC的Html.Editor不使用已发布的表单值并仅使用我的模型的属性值?
答案 0 :(得分:1)
如果您将编辑过的模型明确传递给View调用,它应该可以正常工作。
public ActionResult BuyNow(BuyNowViewModel vm)
{
if (!ModelState.IsValid)
{
vm.CreditCardNumber = null;
return View(vm);
}
}
答案 1 :(得分:0)
您的View首先检查您的ModelState,然后检查您的ViewModel。因此,如果您手动更改值,则需要清除ModelState。
ModelState.Clear();
有关该主题的有用博客:http://balawinwin.wordpress.com/2012/11/24/asp-net-mvcs-html-helpers-ignoring-model-changes/