亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

MVC MODEL Attribute 操縱速記

2019-11-17 02:02:14
字體:
來源:轉載
供稿:網友

MVC MODEL Attribute 操縱速記

目的:

擴充Attribute

任意讀取并Render 需要的Attribute

?

?

用法:

@Html.ParaLabelFor(x=>x.ServiceName):@Html.ParaNameFor(x=>x.ServiceName)

?

?

?

?

代碼:

?

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Web;

usingSystem.Web.Mvc;

?

namespaceCardLanPay

{

publicstaticclassMyHtmlHelper

{

//public static System.Web.Mvc.MvcHtmlString DisplayParaName(this System.Web.Mvc.HtmlHelper helper, string paraName)

//{

// return System.Web.Mvc.MvcHtmlString.Create(Resources.AlipayParaNameResource.ResourceManager.GetString(paraName));

//}

?

publicstaticSystem.Web.Mvc.MvcHtmlStringParaNameFor<TModel, TValue>(thisSystem.Web.Mvc.HtmlHelper<TModel>self, System.Linq.ExPRessions.Expression<Func<TModel, TValue>>expression)

{

varmetadata=ModelMetadata.FromLambdaExpression(expression, self.ViewData);

varPropertyName=metadata.PropertyName;

if (PropertyName==null)

returnMvcHtmlString.Create("");

switch (metadata.ContainerType.FullName)

{

case"CardLanPay.Areas.Alipay.Models.BaseParaModel":

returnMvcHtmlString.Create(string.Format(@"<span>{0}</span>", Resources.AlipayParaNameResource.ResourceManager.GetString(PropertyName)));

default:

returnMvcHtmlString.Empty;

}

}

publicstaticSystem.Web.Mvc.MvcHtmlStringParaTextFor<TModel, TValue>(thisSystem.Web.Mvc.HtmlHelper<TModel>self, System.Linq.Expressions.Expression<Func<TModel, TValue>>expression)

{

varmetadata=ModelMetadata.FromLambdaExpression(expression, self.ViewData);

varPropertyName=metadata.PropertyName;

if (PropertyName==null)

returnMvcHtmlString.Empty;

switch (metadata.ContainerType.FullName)

{

case"CardLanPay.Areas.Alipay.Models.BaseParaModel":

returnMvcHtmlString.Create(string.Format(@"<span>{0}</span>", Resources.AlipayParaDisplayNameResource.ResourceManager.GetString(PropertyName)));

default:

returnMvcHtmlString.Empty;

}

}

?

publicstaticSystem.Web.Mvc.MvcHtmlStringParaLabelFor<TModel, TValue>(thisSystem.Web.Mvc.HtmlHelper<TModel>self, System.Linq.Expressions.Expression<Func<TModel, TValue>>expression)

{

?

varmetadata=ModelMetadata.FromLambdaExpression(expression, self.ViewData);

varPropertyName=metadata.PropertyName;

if (PropertyName==null)

returnMvcHtmlString.Empty;

stringtext="";

switch (metadata.ContainerType.FullName)

{

case"CardLanPay.Areas.Alipay.Models.BaseParaModel":

text=Resources.AlipayParaDisplayNameResource.ResourceManager.GetString(PropertyName);

break;

default:

break;

}

if (string.IsNullOrEmpty(text))

{

returnMvcHtmlString.Empty;

?

}

else

{

TagBuildertagBuilder=newTagBuilder("label");

tagBuilder.Attributes.Add("for", TagBuilder.CreateSanitizedId(self.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(PropertyName)));

tagBuilder.SetInnerText(text);

returnMvcHtmlString.Create(tagBuilder.ToString());

?

}

}

?

?

}

?

?

#region屬性元數據管理

?

publicabstractclassMetadataAttribute : Attribute

{

publicabstractvoidProcess(ModelMetadatamodelMetaData);

}

?

publicclassParaNameModelMetadataProvider : DataAnnotationsModelMetadataProvider

{

protectedoverrideModelMetadataCreateMetadata(

IEnumerable<Attribute>attributes,

TypecontainerType,

Func<object>modelaccessor,

TypemodelType,

stringpropertyName)

{

varmodelMetadata=base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName);

attributes.OfType<ParaNameAttribute>().ToList().ForEach(x=>x.Process(modelMetadata));

returnmodelMetadata;

}

}

?

?

/// <summary>

/// 參數名特性類

/// </summary>

/// <remarks>

/// 用于給軟件內部的屬性指定支付寶接口使用的參數名

/// </remarks>

publicclassParaNameAttribute : MetadataAttribute

{

?

privatereadonlystringparaName;

?

publicParaNameAttribute(stringparaName)

{

this.paraName=paraName;

}

?

publicstringParaName

{

get { returnparaName; }

}

?

publicoverridevoidProcess(ModelMetadatamodelMetaData)

{

modelMetaData.AdditionalValues.Add("ParaName", Resources.AlipayParaNameResource.ResourceManager.GetString(ParaName));

}

?

}

?

#endregion

?

?

publicclassParaTextAttribute : System.ComponentModel.DisplayNameAttribute

{

publicParaTextAttribute(stringdisplayName)

{

DisplayNameValue=Resources.AlipayParaDisplayNameResource.ResourceManager.GetString(displayName);

}

}

}

?

?

?

參考:

http://stackoverflow.com/questions/3885796/get-displayname-attribute-without-using-labelfor-helper-in-asp.net-mvc

?

http://blog.csdn.net/li_xiao_ming/article/details/10134177

?

http://www.49028c.com/wlitsoft/archive/2012/11/30/mvc-custom-htmlhelper.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品91在线观看| 在线观看精品国产视频| 国产精品第一视频| 日韩av中文字幕在线| 精品国产福利在线| 91精品国产自产在线观看永久| 久久久之久亚州精品露出| 国产精品人成电影在线观看| 97在线视频免费播放| 亚洲精品国产综合区久久久久久久| 国产视频福利一区| 欧美激情精品久久久久| 日韩av在线精品| 久久久精品亚洲| 91久久国产精品| 欧美肥臀大乳一区二区免费视频| 日韩**中文字幕毛片| 一区二区三区四区在线观看视频| 国产在线999| 亚洲午夜小视频| 18一19gay欧美视频网站| 欧美一乱一性一交一视频| 日本高清视频一区| 51色欧美片视频在线观看| 国产欧美婷婷中文| 亚洲影院污污.| 日韩国产欧美精品一区二区三区| 欧美午夜视频一区二区| 草民午夜欧美限制a级福利片| 亚洲欧美国产日韩天堂区| 中文字幕在线看视频国产欧美| 亚洲精品久久久久| 欧美中文字幕视频| 国产在线拍揄自揄视频不卡99| 一区二区在线视频| 91午夜在线播放| 精品无人区乱码1区2区3区在线| 国产不卡视频在线| 51精品国产黑色丝袜高跟鞋| 亚洲在线观看视频网站| 欧美在线视频一二三| 久热精品视频在线观看一区| 精品视频在线播放色网色视频| 久久久精品免费| 欧美裸体男粗大视频在线观看| 亚洲片国产一区一级在线观看| 亚洲欧美日韩精品久久亚洲区| 91日本在线视频| 日韩av影视在线| 亚洲国产精品大全| 精品国产一区二区三区在线观看| 姬川优奈aav一区二区| 国产在线拍偷自揄拍精品| 性欧美xxxx视频在线观看| 欧美精品做受xxx性少妇| 中日韩美女免费视频网站在线观看| 日韩成人av网址| 色妞一区二区三区| 日本欧美一级片| 亚洲无限乱码一二三四麻| 成人激情视频在线观看| 欧美激情免费视频| 亚洲老司机av| 亚洲天堂男人天堂女人天堂| 97av在线视频免费播放| 国产视频精品久久久| 国产精品视频精品| 搡老女人一区二区三区视频tv| 91亚洲国产精品| 欧美成人精品一区二区三区| 大胆人体色综合| 91久久国产精品91久久性色| 欧美日韩精品中文字幕| 久久久国产成人精品| 97久久精品在线| 欧美老女人性视频| 欧洲美女免费图片一区| 欧美黄色三级网站| 国内精品久久久久影院 日本资源| 亚洲激情电影中文字幕| 欧洲亚洲女同hd| 亚洲无av在线中文字幕| 久久这里有精品| 中文字幕亚洲第一| 久久久精品在线观看| 俺去啦;欧美日韩| 91精品视频在线| 日本最新高清不卡中文字幕| 狠狠色狠狠色综合日日五| 欧美日韩国产91| 国产精品综合不卡av| 91国产精品91| 国模极品一区二区三区| 欧洲午夜精品久久久| 亚洲人午夜色婷婷| 亚洲欧美一区二区三区在线| 国产成人在线视频| 国产午夜精品免费一区二区三区| 奇门遁甲1982国语版免费观看高清| 北条麻妃久久精品| 国产精品亚洲片夜色在线| 九九热这里只有精品免费看| 欧美成人三级视频网站| 狠狠爱在线视频一区| 92看片淫黄大片欧美看国产片| 欧美成人亚洲成人| www.欧美精品| 久久99国产精品自在自在app| 欧美最猛性xxxx| 亚洲国产日韩欧美在线99| 日韩av免费网站| 亚洲欧美成人一区二区在线电影| 亚洲第一福利网| 久久69精品久久久久久国产越南| 91热福利电影| 91精品视频大全| 久久躁日日躁aaaaxxxx| 国内精品久久久久久影视8| 国产欧美在线播放| 尤物精品国产第一福利三区| 国产精品444| 久久精品国产欧美激情| 亚洲国产精品久久精品怡红院| 日韩大片在线观看视频| 国产精品久久久久久久久久尿| 亚洲一区二区三区久久| 国产精品视频26uuu| 欧美大片欧美激情性色a∨久久| 欧美贵妇videos办公室| 久久久久中文字幕| www.日韩视频| 国产99久久精品一区二区 夜夜躁日日躁| 热久久99这里有精品| 久久久久久久久国产| 国产欧美一区二区三区在线看| 国产精品96久久久久久又黄又硬| 亚洲大胆人体在线| 欧美大全免费观看电视剧大泉洋| 成人激情电影一区二区| 日韩欧美a级成人黄色| 亚洲成年人影院在线| 国产精品福利小视频| 欧美性理论片在线观看片免费| 欧美成人午夜影院| 亚洲视频在线观看免费| 国产aⅴ夜夜欢一区二区三区| 国产成人精品在线| 91青草视频久久| 国产精品日韩欧美| 亚洲图片欧洲图片av| 欧美性猛交xxx| 亚洲天堂色网站| 91免费精品视频| 久久国产精品久久久久久| 欧美肥臀大乳一区二区免费视频| 久久精品视频亚洲| 美女啪啪无遮挡免费久久网站| 一区二区亚洲欧洲国产日韩| 日韩美女视频在线观看| 98精品国产自产在线观看| 亚洲人成77777在线观看网| 深夜福利一区二区| 欧美激情在线观看视频| 国产综合色香蕉精品|