Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 MVC 4-仅验证具有多个局部视图的一个表单_Asp.net Mvc 4_Partial Views_Unobtrusive Validation - Fatal编程技术网

Asp.net mvc 4 MVC 4-仅验证具有多个局部视图的一个表单

Asp.net mvc 4 MVC 4-仅验证具有多个局部视图的一个表单,asp.net-mvc-4,partial-views,unobtrusive-validation,Asp.net Mvc 4,Partial Views,Unobtrusive Validation,我正在进行一个MVC4练习项目,其中我有多个部分视图,当我提交其中一个时,整个页面都会进行验证。我希望每个按钮只验证它们自己的表单 页面如下所示: 这是一个局部视图示例: @model Money.Models.Category <script src="~/Scripts/jquery-1.7.1.min.js"></script> <script src="~/Scripts/jquery.validate.min.js"></script>

我正在进行一个MVC4练习项目,其中我有多个部分视图,当我提交其中一个时,整个页面都会进行验证。我希望每个按钮只验证它们自己的表单

页面如下所示:

这是一个局部视图示例:

@model Money.Models.Category

<script src="~/Scripts/jquery-1.7.1.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

@using (Html.BeginForm("Create", "Category", FormMethod.Post, new { id = "createCategoryForm" }))
{
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Category</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name)
            @Html.ValidationMessageFor(model => model.Name)
        </div>

        <p>
            <input id="createCategorySubmit" type="submit" value="Create" />
        </p>
    </fieldset>
}
这是整个视图的一部分:

@model Money.Models.Transaction

@{
    ViewBag.Title = "Create";
}

<h2>Create</h2>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Transaction</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.CategoryId, "Category")
        </div>
        <div class="editor-field">
            @Html.DropDownList("CategoryId", String.Empty)
            @Html.ValidationMessageFor(model => model.CategoryId)
        </div>

        <div id="createCategory">
            @Html.Partial("~/Views/Shared/_CreateCategory.cshtml")
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.AccountId, "Accout")
        </div>
        <div class="editor-field">
            @Html.DropDownList("AccountId", String.Empty)
            @Html.ValidationMessageFor(model => model.AccountId)
        </div>

        <div id="createAccount">
            @Html.Partial("~/Views/Shared/_CreateAccount.cshtml")
        </div>
你有什么想法吗


谢谢

您必须使用验证器解析新内容:

$('form').data('validator', null);
$.validator.unobtrusive.parse($('form'));

我尝试了类似的方法,但它不起作用$document.readyfunction{$createCategorySubmit.clickfunction{$createCategoryForm.data'validator',null;$.validator.unobtrusive.parse$createCategoryForm;};