Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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
C# 如何在MVC视图中获取ValidationMessage,而无需HTML助手添加自己的范围?_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

C# 如何在MVC视图中获取ValidationMessage,而无需HTML助手添加自己的范围?

C# 如何在MVC视图中获取ValidationMessage,而无需HTML助手添加自己的范围?,c#,asp.net,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,首先,我是MVC新手。我有一个具有以下代码行的视图: <span id="loginerror" style="border-color:red;"> @Html.ValidationMessage("UserName") </span> @Html.ValidationMessage(“用户名”) 这工作正常,只是它在myloginerror中添加了一个范围,而不是仅在loginerror中显示错误。我知道我也可以通过HTMLHelper添加css,但如果可能的话,

首先,我是MVC新手。我有一个具有以下代码行的视图:

<span id="loginerror" style="border-color:red;"> @Html.ValidationMessage("UserName") </span>
@Html.ValidationMessage(“用户名”)

这工作正常,只是它在my
loginerror
中添加了一个范围,而不是仅在
loginerror
中显示错误。我知道我也可以通过HTMLHelper添加css,但如果可能的话,我想用这种方式添加css。我只想获得ValidationMessage的值,而不必更改很多代码。

帮助程序输出一个
元素,该元素假定属性有效

<span class="field-validation-valid" data-valmsg-for="xxx" data-valmsg-replace="true"></span>
为了改变这种行为,您需要为外部
元素创建自己的
HtmlHelper
扩展方法,或者使用
MVC-5
,它具有允许您添加指定
标记的参数的重载

但是,对于客户端验证生成的内部span元素,您需要修改
jquery.validate.unobtrusive.js
文件,这显然不是您想要做的事情

例如,您可以创建自己的css文件来设置默认span元素的样式

field-validation-error {
    display: inline-block;
    border: solid 1px red;
    color: green;
    margin: 10px;
}

除非您想对
jquery.validate.unobtrusive.js
文件进行大量修改,否则您不能这样做。但是你为什么认为你需要这样做呢。该插件添加了类名,因此您可以使用css设置元素的样式,以显示您想要的内容(并且助手不添加任何css,只添加类名)。@StephenMuecke我认为我不需要这样做。但我只是想知道我是否可以在不添加自己的span元素的情况下获得错误消息的值。也许它能给我更多的控制权。如果明天我想在现有的标记中显示错误消息呢?然后将
@Html.ValidationMessage()
包装在
标记中。不清楚为什么您认为需要删除内部span元素。@StephenMuecke,因为我不想要多余的span?如果我必须在中显示消息,为什么我需要中的span?然后(1)编写您自己的
HtmlHelper
扩展方法以输出容器占位符,(2)修改
jquery.validate.unobtrusive.js
文件(祝您好运)
<span class="field-validation-error" data-valmsg-for="xxx" data-valmsg-replace="true">
    <span for="xxx" generated="true" class="">Error message</span>
</span>
field-validation-error {
    display: inline-block;
    border: solid 1px red;
    color: green;
    margin: 10px;
}