【发布时间】:2014-09-22 11:25:46
【问题描述】:
我在部分视图中有一个@Html.ValidationMessageFor(model => model.FirstName) 无法正常工作。加载的局部视图中包含的文本框上有“必需的”数据注释,并且相关的消息会立即显示。我怎样才能避免这种情况?它甚至没有验证。
部分查看代码
@{ Html.EnableClientValidation(); }
@*@{ ViewContext.FormContext = new FormContext(); }*@
@using (Html.BeginForm("ActionName", "ControllerName"))
{
<div>
@Html.TextBoxFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
....//some more HTML
}
主视图代码
<div class="modal" id="modalId" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
</div>
<div class="modal-body" id="modalbodyId">
@Html.Partial("PartilViewName")
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
到目前为止,我已经尝试了以下方法。
1.在局部视图中添加以下代码行
@{ ViewContext.FormContext = new FormContext(); }
2.ClientValidationEnabled 和UnobtrusiveJavaScriptEnabled 在web.config 中都设置为true
3.在BundleConfig.cs中添加了以下script标签
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
在我看到的所有帖子中,我都需要像下面的代码一样使用 AJAX 调用。 但是我不确定如何使用它。
$("#create").click(function () {
var form = $("#create_person").closest("form");
form.removeData('validator');
form.removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse(form);
$.ajax({
url: "/Person/CreateOrUpdate",
type: "POST",
data: $("#create_person").serialize(),
cache: false
});
});
【问题讨论】:
-
发布 FirstName 属性
-
您在页面上运行了哪些自定义 JavaScript(即由您或您的组织创建)?
-
自定义Javascript?没什么...只是使用 jquery 验证。
标签: asp.net-mvc razor partial-views bootstrap-modal