Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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# MVC2 Html.ValidationMessageFor:添加htmlAttributes,但保留默认消息_C#_Validation_Asp.net Mvc 2 - Fatal编程技术网

C# MVC2 Html.ValidationMessageFor:添加htmlAttributes,但保留默认消息

C# MVC2 Html.ValidationMessageFor:添加htmlAttributes,但保留默认消息,c#,validation,asp.net-mvc-2,C#,Validation,Asp.net Mvc 2,我想更改由我的Html.ValidationMessageFor呈现的代码的htmlAttributes,但我希望显示的消息是“默认值” 重载选项为: A) Html.ValidationMessageFor(表达式) B) Html.ValidationMessageFor(表达式,validationMessage) C) Html.ValidationMessageFor(表达式、validationMessage、htmlAttributesObject) 我希望有一个Html.Vali

我想更改由我的
Html.ValidationMessageFor
呈现的代码的htmlAttributes,但我希望显示的消息是“默认值”

重载选项为:
A)
Html.ValidationMessageFor(表达式)

B)
Html.ValidationMessageFor(表达式,validationMessage)

C)
Html.ValidationMessageFor(表达式、validationMessage、htmlAttributesObject)

我希望有一个
Html.ValidationMessageFor(expression,htmlAttributesObject)
选项,但是没有

如何使用选项C实现预期结果?也就是说,“默认”消息存储在哪里?是否有一种干净、简单的方法来获取它,以便我可以将其插入validationMessage参数


谢谢

因为您不想覆盖默认消息,只需提供一个空字符串,MVC将使用默认消息:

<%: Html.ValidationMessageFor(m => m.propertyName, string.Empty, new { attribs ... }) %>
m.propertyName,string.Empty,新的{attribs…})%>

完美。谢谢我猜我假设传递一个空字符串会为消息提供一个空字符串。作为参数的空字符串不会覆盖帮助器默认值这一事实是某种ASP.NET或更通用的.NET约定吗?或者说,这种行为是根据具体情况而变化的?两者都不是。我通过查看源代码了解了这个功能,当您有机会时,它值得一看。之所以这样做,是因为不可能有一个单独的方法只接受您最初想要使用的两个参数,而不与方法签名冲突(表达式、验证消息)。我如何传递HTMLAttribute(第三个参数)要告诉它在新行上或在其有效的字段下显示此验证,请在错误消息中包含换行符(
),或仅在页面标记中的单独留置权中包含ValidationMessage