如何使MVC Html.EditorFor忽略Form值

时间:2011-10-17 23:28:37

标签: asp.net asp.net-mvc-3

我有处理信用卡交易的观点。它使用包含CreditCardNumber属性的简单模型。如果有错误,我会删除模型上的CreditCardNumber属性。问题是MVC继续并填写CreditCardNumber。我猜它正在查看发布的表单值,并试图帮助我重新填写它。我不想要这个。

如何制作MVC的Html.Editor不使用已发布的表单值并仅使用我的模型的属性值?

2 个答案:

答案 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/