我在部分视图中有一个@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
和true
都设置为web.config
3.在script
BundleConfig.cs
代码
<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
});
});
答案 0 :(得分:0)
尝试将用于局部视图的模型添加为创建局部视图模型中的属性。
public class MainViewModel
{
// properties
public PartialViewModel PartialVm { get; set; }
}
然后在渲染局部时,将它传递给PartialViewModel属性。
@Html.Partial("PartialViewName", Model.PartialVm)