jquery - 远程验证不适用于 asp.net mvc 5 中的部分 View

标签 jquery asp.net-mvc razor unobtrusive-validation

我有一个编辑器字段在 razor 部分 View 中声明为

    <div class="form-group">
        @Html.LabelFor(model => model.sifra_materijala, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.sifra_materijala)
            @Html.ValidationMessageFor(model => model.sifra_materijala)
        </div>
    </div>

使用索引中的“RenderPartial”调用 View 。

此生成的 html:

<input type="text" value="" name="sifra_materijala" id="sifra_materijala" 
data-val-remote-url="/NormativiMaterijala/MaterijalUPoziciji" 
data-val-remote-additionalfields="*.sifra_materijala" 
data-val-remote="'sifra_materijala' is invalid." 
data-val="true" class="text-box single-line">

我也有

    [HttpGet]
    public virtual JsonResult MaterijalUPoziciji(string sifra_materijala)
    { 
       // do some checking and return json result..
    }

    [Remote("MaterijalUPoziciji", "NormativiMaterijala", ErrorMessage = "Already Exists")]
    public string sifra_materijala { get; set; }

在需要检查的模型中... 所有这一切都行不通,没有明显的原因。我检查了拼写、jquery 不显眼的脚本,一切正常,但验证方法从未被调用。

为了让事情变得更加困惑,我在另一个页面上将所有这些工作得很好......

有人可以帮我解决这个问题吗?

编辑:检查 Firebug 中的页面显示退出/更改带有需要验证的数据的编辑框后不会发送任何请求...

我还包含脚本。

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

我还添加了第二个验证,该验证不是远程的,这个验证可以工作,但远程仍然死机......

[StringLength(10, MinimumLength = 5, ErrorMessage = "Sifra must be minimum 5 characters long")]
        [Remote("MaterijalUPoziciji", "NormativiMaterijala", ErrorMessage = "Already Exists")]
        public string sifra_materijala { get; set; }

最佳答案

我遇到了类似的问题,包括远程在内的客户端验证都无法在部分 View 中工作。在我的例子中,因为 jquery.validate 包位于包含页面中,而部分内容是通过 ajax 加载的。我必须将 jquery.validate js 脚本移至部分 View 中:

 @Scripts.Render("~/bundles/jqueryval")

关于jquery - 远程验证不适用于 asp.net mvc 5 中的部分 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22354433/

相关文章:

asp.net-mvc - 我应该在数据库中的 URL 中存储空格吗?如果是这样,将它们放入 <a href ="..."> 时如何对它们进行编码?

c# - 如何在 Html.ListBoxFor 中设置单个(或所有,每个)选项/元素的样式?

javascript - .keyup jquery 不适用于 Iphone

jQuery/CSS 导航,无法将 "fnutt"获取到中心

javascript - 如何在 Greasemonkey 脚本中包含远程 javascript 文件?

javascript - Facebook 评论插件在创建评论时返回 500 错误

c# - 我们如何使用 C# 或 Java Script/Jquery 更改地址栏的属性

c# - 自动将 View 中的元素映射到 dateTime 类型的模型

cshtml @Url.Action(Action, Controller) 的 JavaScript 类比

javascript - jQuery this.href 字符串比较不起作用