Asp.net mvc 4 EditorForModel MVC4中的验证
我有一个动态视图,作为控制器的PartialView呈现:Asp.net mvc 4 EditorForModel MVC4中的验证,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,我有一个动态视图,作为控制器的PartialView呈现: @model dynamic @using (Html.BeginForm("Edit", null, FormMethod.Post)) { @Html.ValidationSummary(true) @Html.EditorForModel() <input type="submit" value="Edit" /> } @模型动态 @使用(Html.BeginForm(“Edit”,null
@model dynamic
@using (Html.BeginForm("Edit", null, FormMethod.Post))
{
@Html.ValidationSummary(true)
@Html.EditorForModel()
<input type="submit" value="Edit" />
}
@模型动态
@使用(Html.BeginForm(“Edit”,null,FormMethod.Post))
{
@Html.ValidationSummary(true)
@Html.EditorForModel()
}
当我点击提交按钮时,如果缺少任何内容或任何格式不正确等,它将显示验证消息
但是,点击submit按钮后,在显示消息之前会调用post edit操作。asp.net术语中的典型回发正在发生。
在执行服务器控制器代码之前,它不应该在客户端显示错误吗
我有点困惑,有人能澄清这是正确的方法还是我做错了什么吗
@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" />
}
@使用(Html.BeginForm(“Index”,“Content”,FormMethod.Post,new{id=“FrmIndex”}))
{
@如果(Model.ID!=0)
{
身份证件
}
@如果(Model.Name!=null)
{
名称
}
其他的
{
名称
@Html.TextBox(“名称”)
@Html.ValidationMessage(“名称”)
}
}
使用此脚本进行验证
<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>
$(文档).ready(函数(){
$(“#btnSave”)。单击(函数(){
var validation=$(“#FrmIndex”);//我的起始Id
如果(!validation.valid()){
返回false;
}
});
});
你提到过Jquery不引人注目并验证脚本文件吗?我不知道..你能解释一下吗?正如我在问题中提到的,我的是动态的。如果我只包含这些脚本,它会工作吗?是的,我的页面也是动态的。我已经在捆绑包中添加了这两个脚本,但控件仍将编辑post操作,之后只有它显示消息。你能吗advise@CodeCaster,我在bundle中注册了脚本(jquery.validate.unobtrusive.min.js、jquery.validate.min.js、jquery.validate.unobtrusive.js)。在web.config中,我将键“UnobtrusiveJavaScriptEnabled”设置为True。我还没有点击提交,表单正在提交,之后只有我能看到消息。我想消息应该从客户端显示。不确定我错了什么doing@mmssaann这应该行得通。我找不到MVC不引人注目的验证是如何与动态
模型一起工作的,因为现在每个人都把所有东西都称为动态的,而且搜索结果也不相关。