gpt4 book ai didi

asp.net - 如何在ASP.NET MVC 3中的HttpPost操作中禁用验证?

转载 作者:行者123 更新时间:2023-12-04 13:29:06 25 4
gpt4 key购买 nike

我有一个像这样的创建 View ...

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"
type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"
type="text/javascript"></script>

@using (Html.BeginForm())
{
@Html.ValidationSummary(null, new { @class = "validation" })
...
<input class="cancel" type="submit" value="OK" />
...
<input name="submit" type="submit" value="Save" />
}

...以及相应的 Controller 操作:
[HttpPost]
public ActionResult Create(string submit, MyViewModel myViewModel)
{
if (submit != null) // true, if "Save" button has been clicked
{
if (ModelState.IsValid)
{
// save model data
return RedirectToAction("Index");
}
}
else // if "OK" button has been clicked
{
// Disable somehow validation here so that
// no validation errors are displayed in ValidationSummary
}

// prepare some data in myViewModel ...

return View(myViewModel); // ... and display page again
}

我发现可以通过在“确定”按钮上设置 class="cancel"来禁用客户端验证。这很好。

但是,服务器端验证仍然会发生。有没有一种方法可以在 Controller 操作中将其禁用(请参见上面的“创建”操作中的else-block)?

谢谢你的帮助!

最佳答案

我最近有一个类似的问题。我想从验证中排除某些属性,并使用以下代码:

ModelState.Remove("Propertyname");

隐藏错误消息,您可以使用
ModelState.Clear();

但是问题是,如果不使用这些值,为什么要提交这些值?您是否最好使用重置按钮来重置表单中的值:
<input type="reset" value="Reset Form">

关于asp.net - 如何在ASP.NET MVC 3中的HttpPost操作中禁用验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6048670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com