Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何使MVC Html.EditorFor忽略表单值_Asp.net_Asp.net Mvc 3 - Fatal编程技术网

Asp.net 如何使MVC Html.EditorFor忽略表单值

Asp.net 如何使MVC Html.EditorFor忽略表单值,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,我有一个处理信用卡交易的视图。它使用包含CreditCardNumber属性的简单模型。如果有错误,我将清空模型上的CreditCardNumber属性。问题是MVC继续并填写CreditCardNumber。我猜它正在查看已发布的表单值,并试图帮助我重新填写表单。我不要这个 如何使MVC的Html.editor不使用已发布的表单值,而只使用我的模型的属性值?如果将已编辑的模型显式传递给视图调用,它应该可以正常工作 public ActionResult BuyNow(BuyNowViewMod

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


如何使MVC的Html.editor不使用已发布的表单值,而只使用我的模型的属性值?

如果将已编辑的模型显式传递给视图调用,它应该可以正常工作

public ActionResult BuyNow(BuyNowViewModel vm)
{
  if (!ModelState.IsValid)
  {
      vm.CreditCardNumber = null;
      return View(vm);
  }
}

如果将已编辑的模型显式传递给视图调用,则它应该可以正常工作

public ActionResult BuyNow(BuyNowViewModel vm)
{
  if (!ModelState.IsValid)
  {
      vm.CreditCardNumber = null;
      return View(vm);
  }
}

视图首先检查模型状态,然后检查视图模型。因此,如果手动更改值,则需要清除ModelState

ModelState.Clear()


关于该主题的有用博客:

您的视图首先检查您的模型状态,然后检查您的视图模型。因此,如果手动更改值,则需要清除ModelState

ModelState.Clear()


关于此主题的有用博客:

失败请求时控制器返回什么?否则完全填充模型失败请求时控制器返回什么?否则完全填充模型但只有在
的情况下,您才会希望执行此操作!ModelState.IsValid
right?right。或者其他一些非标准的验证代码在某个地方失败(你永远不知道,谢谢你的建议)。这正是我正在做的。模型不包含CreditCardNumber。当模型传递到视图时,您可能需要发布一些代码来解决此问题,因为您所描述的内容不正常。但是,您只需要在
的情况下执行此操作!ModelState.IsValid
right?right。或者其他一些非标准的验证代码在某个地方失败(你永远不知道,谢谢你的建议)。这正是我正在做的。模型在传递到视图时不包含CreditCardNumber。您可能需要发布一些代码来解决此问题,因为您描述的内容不正常。