Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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
Javascript 将MVC ValidationMessageFor添加到单独的Div标记_Javascript_Jquery_Html_Css_Asp.net Mvc - Fatal编程技术网

Javascript 将MVC ValidationMessageFor添加到单独的Div标记

Javascript 将MVC ValidationMessageFor添加到单独的Div标记,javascript,jquery,html,css,asp.net-mvc,Javascript,Jquery,Html,Css,Asp.net Mvc,有没有办法将所有@Html.ValidationMessageFor块添加到MVC parent\u layout.cshtml页面页脚中的div容器中?下面的代码显示了底部div中的验证消息,但我希望使用jQuery将它们显示在_Layout.cshtml div的页脚中 @model Proj.ViewModels.ApplicationControllerViewModel @Html.ValidationSummary(true) @using (Html.BeginForm(null

有没有办法将所有@Html.ValidationMessageFor块添加到MVC parent\u layout.cshtml页面页脚中的div容器中?下面的代码显示了底部div中的验证消息,但我希望使用jQuery将它们显示在_Layout.cshtml div的页脚中

@model Proj.ViewModels.ApplicationControllerViewModel
@Html.ValidationSummary(true)

@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "Details" }))
{
    <div id="divApplication">
        <div class="editor-label">
            @Html.LabelFor(model => model.Applicaiton.Name, new { @class = "formLabel" })
            @Html.HiddenFor(model => model.Applicaiton.ID, new { @class = "Application-ID" }) 
            @Html.TextBoxFor(model => model.Applicaiton.Name, new { @class = "Application-Name" })
        </div>
        <br />
        <div class="editor-label">
            @Html.LabelFor(model => model.ControllerList, new { @class = "formLabel" })
            @Html.DropDownList("ControllerList", Model.ControllerList, new { @class = "Application-ControllerList"})
        </div>
        <br />
        <div class="editor-label">
            @Html.LabelFor(model => model.Applicaiton.Abbreviation, new { @class = "formLabel" }) 
            @Html.TextBoxFor(model => model.Applicaiton.Abbreviation, new { @class = "Application-Abbreviation" })
        </div>
        <br />
        <div class="editor-label">
            @Html.LabelFor(model => model.Applicaiton.Description, new { @class = "formLabel" }) 
            @Html.TextAreaFor(model => model.Applicaiton.Description, new { @class = "Application-Description", rows = 10, cols = 60 })
        </div>
        <br />
        <div class="editor-label">
            @Html.Label("Deployed Date", new { @class = "formLabel" })
            @Html.TextBoxFor(model => model.Applicaiton.DeployedOn, "{0:MM/dd/yyyy}", new { @class = "Application-DeployedOn" })
        </div>
        <div>
            @Html.ValidationMessageFor(model => model.Applicaiton.Name)
            @Html.ValidationMessageFor(model => model.Applicaiton.Abbreviation)
            @Html.ValidationMessageFor(model => model.Applicaiton.Description)
            @Html.ValidationMessageFor(model => model.Applicaiton.DeployedOn)
        </div>
    </div>
}
@model Proj.ViewModels.ApplicationControllerViewModel
@Html.ValidationSummary(true)
@使用(Html.BeginForm(null,null,FormMethod.Post,new{id=“Details”}))
{
@LabelFor(model=>model.applicationon.Name,新的{@class=“formLabel”})
@Html.HiddenFor(model=>model.applicationon.ID,新的{@class=“Application ID”})
@TextBoxFor(model=>model.applicationon.Name,新的{@class=“Application Name”})

@Html.LabelFor(model=>model.ControllerList,新的{@class=“formLabel”}) @DropDownList(“ControllerList”,Model.ControllerList,new{@class=“Application ControllerList”})
@Html.LabelFor(model=>model.applicationon.缩写,新的{@class=“formLabel”}) @Html.TextBoxFor(model=>model.applicationon.缩写,新的{@class=“Application缩写”})
@Html.LabelFor(model=>model.applicationon.Description,新的{@class=“formLabel”}) @TextAreaFor(model=>model.applicationon.Description,new{@class=“Application Description”,rows=10,cols=60})
@Label(“部署日期”,新的{@class=“formLabel”}) @Html.TextBoxFor(model=>model.applicationon.DeployedOn,“{0:MM/dd/yyyy}”,new{@class=“Application DeployedOn”}) @Html.ValidationMessageFor(model=>model.applicationon.Name) @Html.ValidationMessageFor(model=>model.application.缩写) @Html.ValidationMessageFor(model=>model.applicationon.Description) @Html.ValidationMessageFor(model=>model.applicationon.DeployedOn) }
尽管我仍然对html的外观和这些局部视图感到困惑,但我还是要尝试一下。对视图的页面加载使用.html()方法。例如,如果您在上面列出的视图中,请在验证div中添加一个id,如下所示:

<div id="ValidationDiv">
        @Html.ValidationMessageFor(model => model.Applicaiton.Name)
        @Html.ValidationMessageFor(model => model.Applicaiton.Abbreviation)
        @Html.ValidationMessageFor(model => model.Applicaiton.Description)
        @Html.ValidationMessageFor(model => model.Applicaiton.DeployedOn)
 </div>

我将使用内置功能在
\u Layout.cshtml
中使用
@RenderSection
来实现这一点:

\u Layout.cshtml(例如简化版)


@视图包。标题
@RenderBody()
@RenderSection(“ValidationMessages”,false)
查看

@model Proj.ViewModels.ApplicationControllerViewModel
@Html.ValidationSummary(true)

@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "Details" }))
{
    <div id="divApplication">
        <div class="editor-label">
            @Html.LabelFor(model => model.Applicaiton.Name, new { @class = "formLabel" })
            @Html.HiddenFor(model => model.Applicaiton.ID, new { @class = "Application-ID" }) 
            @Html.TextBoxFor(model => model.Applicaiton.Name, new { @class = "Application-Name" })
        </div>
        <br />
        <div class="editor-label">
            @Html.LabelFor(model => model.ControllerList, new { @class = "formLabel" })
            @Html.DropDownList("ControllerList", Model.ControllerList, new { @class = "Application-ControllerList"})
        </div>
        <br />
        <div class="editor-label">
            @Html.LabelFor(model => model.Applicaiton.Abbreviation, new { @class = "formLabel" }) 
            @Html.TextBoxFor(model => model.Applicaiton.Abbreviation, new { @class = "Application-Abbreviation" })
        </div>
        <br />
        <div class="editor-label">
            @Html.LabelFor(model => model.Applicaiton.Description, new { @class = "formLabel" }) 
            @Html.TextAreaFor(model => model.Applicaiton.Description, new { @class = "Application-Description", rows = 10, cols = 60 })
        </div>
        <br />
        <div class="editor-label">
            @Html.Label("Deployed Date", new { @class = "formLabel" })
            @Html.TextBoxFor(model => model.Applicaiton.DeployedOn, "{0:MM/dd/yyyy}", new { @class = "Application-DeployedOn" })
        </div>
    </div>
}

@section ValidationMessages {
    @Html.ValidationMessageFor(model => model.Applicaiton.Name)
    @Html.ValidationMessageFor(model => model.Applicaiton.Abbreviation)
    @Html.ValidationMessageFor(model => model.Applicaiton.Description)
    @Html.ValidationMessageFor(model => model.Applicaiton.DeployedOn)
}
@model Proj.ViewModels.ApplicationControllerViewModel
@Html.ValidationSummary(true)
@使用(Html.BeginForm(null,null,FormMethod.Post,new{id=“Details”}))
{
@LabelFor(model=>model.applicationon.Name,新的{@class=“formLabel”})
@Html.HiddenFor(model=>model.applicationon.ID,新的{@class=“Application ID”})
@TextBoxFor(model=>model.applicationon.Name,新的{@class=“Application Name”})

@Html.LabelFor(model=>model.ControllerList,新的{@class=“formLabel”}) @DropDownList(“ControllerList”,Model.ControllerList,new{@class=“Application ControllerList”})
@Html.LabelFor(model=>model.applicationon.缩写,新的{@class=“formLabel”}) @Html.TextBoxFor(model=>model.applicationon.缩写,新的{@class=“Application缩写”})
@Html.LabelFor(model=>model.applicationon.Description,新的{@class=“formLabel”}) @TextAreaFor(model=>model.applicationon.Description,new{@class=“Application Description”,rows=10,cols=60})
@Label(“部署日期”,新的{@class=“formLabel”}) @Html.TextBoxFor(model=>model.applicationon.DeployedOn,“{0:MM/dd/yyyy}”,new{@class=“Application DeployedOn”}) } @部分验证消息{ @Html.ValidationMessageFor(model=>model.applicationon.Name) @Html.ValidationMessageFor(model=>model.application.缩写) @Html.ValidationMessageFor(model=>model.applicationon.Description) @Html.ValidationMessageFor(model=>model.applicationon.DeployedOn) }
为什么不将带有验证消息的div放在_布局页面上?只要启用了验证,它就会自动填充验证消息。我们可能会有数百个包含验证消息的.cshtml局部视图。我相信ValidationMessageFor标记必须包含正在验证的模型组件。(即..model=>model.applicationon.Name)位于部分视图中。验证工作正常。我想要一种在footer div中显示消息的方法,而不是在表单块中。好的,那么您想要在_布局页面的页脚中显示消息,而不是在表单块中。谢谢,这就是我想要的。
$(document).ready(function() {
    var partialViewDivHtml = $('#ValidationDiv').html();
    var layoutDiv = $($'#ValidationHolder');
    layoutDiv.html(partialVIewDivHtml);
})
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
</head>
<body>
<div id="content">
   @RenderBody()
</div>
<div>
   @RenderSection("ValidationMessages", false)
</div>

</body>
</html>
@model Proj.ViewModels.ApplicationControllerViewModel
@Html.ValidationSummary(true)

@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "Details" }))
{
    <div id="divApplication">
        <div class="editor-label">
            @Html.LabelFor(model => model.Applicaiton.Name, new { @class = "formLabel" })
            @Html.HiddenFor(model => model.Applicaiton.ID, new { @class = "Application-ID" }) 
            @Html.TextBoxFor(model => model.Applicaiton.Name, new { @class = "Application-Name" })
        </div>
        <br />
        <div class="editor-label">
            @Html.LabelFor(model => model.ControllerList, new { @class = "formLabel" })
            @Html.DropDownList("ControllerList", Model.ControllerList, new { @class = "Application-ControllerList"})
        </div>
        <br />
        <div class="editor-label">
            @Html.LabelFor(model => model.Applicaiton.Abbreviation, new { @class = "formLabel" }) 
            @Html.TextBoxFor(model => model.Applicaiton.Abbreviation, new { @class = "Application-Abbreviation" })
        </div>
        <br />
        <div class="editor-label">
            @Html.LabelFor(model => model.Applicaiton.Description, new { @class = "formLabel" }) 
            @Html.TextAreaFor(model => model.Applicaiton.Description, new { @class = "Application-Description", rows = 10, cols = 60 })
        </div>
        <br />
        <div class="editor-label">
            @Html.Label("Deployed Date", new { @class = "formLabel" })
            @Html.TextBoxFor(model => model.Applicaiton.DeployedOn, "{0:MM/dd/yyyy}", new { @class = "Application-DeployedOn" })
        </div>
    </div>
}

@section ValidationMessages {
    @Html.ValidationMessageFor(model => model.Applicaiton.Name)
    @Html.ValidationMessageFor(model => model.Applicaiton.Abbreviation)
    @Html.ValidationMessageFor(model => model.Applicaiton.Description)
    @Html.ValidationMessageFor(model => model.Applicaiton.DeployedOn)
}