Sla*_*uma 6 asp.net validation asp.net-mvc asp.net-mvc-3
我有这样的创建视图......
<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" />
}
Run Code Online (Sandbox Code Playgroud)
......以及相应的控制器动作:
[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
}
Run Code Online (Sandbox Code Playgroud)
我发现我可以通过设置class="cancel""确定"按钮来禁用客户端验证.这很好用.
但是,服务器端验证仍然会发生.有没有办法在控制器操作中禁用它(请参阅上面的Create操作中的else-block)?
谢谢你的帮助!
我最近有类似的问题.我想从验证中排除一些属性并使用以下代码:
ModelState.Remove("Propertyname");
Run Code Online (Sandbox Code Playgroud)
隐藏可以使用的错误消息
ModelState.Clear();
Run Code Online (Sandbox Code Playgroud)
但问题是,如果您不使用这些值,为什么要提交这些值?您是否最好使用重置按钮重置表单中的值:
<input type="reset" value="Reset Form">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12335 次 |
| 最近记录: |