Asp.net mvc 4 EditorForModel MVC4中的验证

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

我有一个动态视图,作为控制器的PartialView呈现:

@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不引人注目的验证是如何与
动态
模型一起工作的,因为现在每个人都把所有东西都称为动态的,而且搜索结果也不相关。