我有一个动态视图,它从控制器呈现为PartialView:
@model dynamic
@using (Html.BeginForm("Edit", null, FormMethod.Post))
{
@Html.ValidationSummary(true)
@Html.EditorForModel()
<input type="submit" value="Edit" />
}
当我点击提交按钮时,如果缺少任何内容或任何格式不正确等,它应显示验证消息等。
但是,在点击提交按钮时,会在显示消息之前调用帖子编辑操作。正在发生asp.net术语中的典型回发。 在执行服务器控制器代码之前,它不应该在客户端显示错误吗?
我有点困惑,有人可以澄清它是正确的方式还是我做错了什么?
答案 0 :(得分:-2)
查看
@using (Html.BeginForm("Index", "Content", FormMethod.Post, new { id = "FrmIndex" }))
{
<div>
@if (Model.ID != 0)
{
<label style="float: left;">
Id</label>
<input id="txtID-@Model.ID.ToString()" type="text" class="hide" value="@Model.ID.ToString()"/>
}
</div>
<div>
@if (Model.Name != null)
{
<label style="float: left;">
Name</label>
<input id="txtName-@Model.ID.ToString()" type="text" class="hide" value="@Model.Name.ToString()"/>
}
else
{
<label style="float: left;">
Name</label>
@Html.TextBox("Name")
@Html.ValidationMessage("Name")
}
</div>
<input type="submit" value="Save" style="float: left;" id="btnSave" title="btn" />
}
使用此脚本进行验证
<script src="@Url.Content("~/Script/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Script/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<强>脚本强>
<script type="text/javascript">
$(document).ready(function () {
$("#btnSave").click(function () {
var validation = $("#FrmIndex"); // My From Id
if (!validation.valid()) {
return false;
}
});
});
</script>