我有一个编辑器字段在 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/