我创建了一个部分视图(MVC4),使用脚手架选项进行创建操作。我只是尝试将其加载到jquery ui Dialog.I能够加载局部视图。但是在加载时我丢失了所有的验证MVC 4为我生成。
是否可以将局部视图(Scaffolded)加载到jquery对话框?
以下是我用于弹出窗口的代码
$(function () {
$("#CreateDialog").dialog({
autoOpen: false,
buttons: {
"Create": function () {
$(this).dialog("close");
}
},
dialogClass: "no-title",
hide: {
effect: "scale",
easing: "easeInBack"
},
show: {
effect: "scale",
easing: "easeOutBack"
}
});
});
function openModalPopUp() {
$.ajax({
type: 'GET',
url: '/Expense/CreatePartial',
cache: false,
success: function (result) {
$('#CreateDialog').html(result);
}
});
$("#CreateDialog").dialog("open");
}
和我的MODEL(样本):
@model EFMvcWebRole.Models.ExpenseEntity
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>ExpenseEntity</legend>
<div class="editor-label">
@Html.LabelFor(model => model.ECValue)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ECValue)
@Html.ValidationMessageFor(model => model.ECValue)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Category)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Category)
@Html.ValidationMessageFor(model => model.Category)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.TotalSalary)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.TotalSalary)
@Html.ValidationMessageFor(model => model.TotalSalary)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Remaining)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Remaining)
@Html.ValidationMessageFor(model => model.Remaining)
</div>
</fieldset>
答案 0 :(得分:2)
在Partial View中只包含JS文件即Jquery Unobtrusive js
文件,然后它工作正常,有时这个问题出现在asp.net mvc的局部视图中(因为表单是动态添加到DOM中的)。
只需在您的部分视图中包含此js文件:
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
------------------或者在Partial View中尝试这个----------------------- ---
$.validator.unobtrusive.parse($("form"));