Asp.net 如何使MVC Html.EditorFor忽略表单值
我有一个处理信用卡交易的视图。它使用包含CreditCardNumber属性的简单模型。如果有错误,我将清空模型上的CreditCardNumber属性。问题是MVC继续并填写CreditCardNumber。我猜它正在查看已发布的表单值,并试图帮助我重新填写表单。我不要这个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
如何使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。您可能需要发布一些代码来解决此问题,因为您描述的内容不正常。