Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 为ASP.NET MVC4中的Html.ValidationMessageFor指定默认消息_Asp.net Mvc 4_Razor - Fatal编程技术网

Asp.net mvc 4 为ASP.NET MVC4中的Html.ValidationMessageFor指定默认消息

Asp.net mvc 4 为ASP.NET MVC4中的Html.ValidationMessageFor指定默认消息,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,最初显示(GET)时,我想在表单中的文本框旁边显示一个星号(*) 此外,我还希望在出现错误时对GET/POST使用相同的视图),以便对GET请求使用相同的视图 我传入一个空模型,例如 返回视图(newperson()) 稍后,当表单提交(POST)时,我使用数据注释,检查模型状态并 显示错误(如果有) Html.ValidationMessageFor(v=>v.FirstName) 对于GET请求,模型状态有效且没有消息,因此不会显示星号。 我试图通过检查请求类型并只打印星号来解决这个问题。

最初显示(GET)时,我想在表单中的文本框旁边显示一个星号(*) 此外,我还希望在出现错误时对GET/POST使用相同的视图),以便对GET请求使用相同的视图 我传入一个空模型,例如 返回视图(newperson())

稍后,当表单提交(POST)时,我使用数据注释,检查模型状态并 显示错误(如果有) Html.ValidationMessageFor(v=>v.FirstName)

对于GET请求,模型状态有效且没有消息,因此不会显示星号。 我试图通过检查请求类型并只打印星号来解决这个问题。 @(HttpContext.Current.Request.HttpMethod==“GET”?“*”:Html.ValidationMessageFor(v=>v.FirstName.ToString())

问题是Html.ValidationMessageFor(v=>v.FirstName).ToString()已经编码 我想从html.ValidationMessageFor(v=>v.FirstName)中获取原始html

或者这里有更好的方法。 1.如何显示GET请求的默认帮助消息(在表单字段旁边)-例如“请以nnn.nnn.nnn.nnn格式输入IP地址),然后显示post的错误(如果有)?
2.从razor的角度来看,检查if条件并编写字符串或MvcHtmlString的最佳方法是什么?关于我的最后一条评论,下面是我将如何创建要使用的帮助器:

    public static class HtmlValidationExtensions
    {
        public static MvcHtmlString ValidationMessageForCustom<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression, string customString)
        {
           var returnedString = HttpContext.Current.Request.HttpMethod == "GET" ? customString : helper.ValidationMessageFor(expression).ToString();

           return MvcHtmlString.Create(returnedString);
        }
    }
公共静态类HtmlValidationExtensions
{
public static MvcHtmlString ValidationMessageForCustom(此HtmlHelper、表达式、字符串customString)
{
var returnedString=HttpContext.Current.Request.HttpMethod==“GET”?自定义字符串:helper.ValidationMessageFor(表达式).ToString();
返回MvcHtmlString.Create(returnedString);
}
}

它的用法如下
@Html.ValidationMessageForCustom(v=>v.FirstName,“请以nnn.nnn.nnn.nnn格式输入IP地址”)

关于我的最后一条评论,我将如何创建要使用的帮助器:

    public static class HtmlValidationExtensions
    {
        public static MvcHtmlString ValidationMessageForCustom<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression, string customString)
        {
           var returnedString = HttpContext.Current.Request.HttpMethod == "GET" ? customString : helper.ValidationMessageFor(expression).ToString();

           return MvcHtmlString.Create(returnedString);
        }
    }
公共静态类HtmlValidationExtensions
{
public static MvcHtmlString ValidationMessageForCustom(此HtmlHelper、表达式、字符串customString)
{
var returnedString=HttpContext.Current.Request.HttpMethod==“GET”?自定义字符串:helper.ValidationMessageFor(表达式).ToString();
返回MvcHtmlString.Create(returnedString);
}
}

它的用法如下
@Html.ValidationMessageForCustom(v=>v.FirstName,“请以nnn.nnn.nnn.nnn格式输入IP地址”)

您是否尝试过创建自己的自定义HTML帮助程序,使用新的类似ValidationFormMessageCustom HTML帮助程序扩展来覆盖ValidationMessageFor的行为,该扩展程序本身在呈现到屏幕时检查当前请求上下文并打印相应的消息?在帮助程序中,为了使其更具可扩展性,您可以uld传递为get请求打印的字符串,例如“请按以下格式输入IP…”。。。“您是否尝试过创建自己的自定义HTML帮助程序,使用新的类似ValidationFormMessageCustom HTML帮助程序扩展来覆盖ValidationMessageFor的行为,该扩展程序在呈现到屏幕时会检查当前请求上下文并打印相应的消息?在帮助程序中,为了使其更具可扩展性,您可以传递为get请求打印的字符串,例如“请以以下格式输入IP…”