AJAX Load scaffolded MVC 4局部视图

时间:2014-09-13 19:06:01

标签: ajax asp.net-mvc-4 dialog

我创建了一个部分视图(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>

1 个答案:

答案 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"));