asp.net-mvc – MVC中SelectlistItem的自定义属性
发布时间:2020-12-16 03:28:41 所属栏目:asp.Net 来源:网络整理
导读:我想为dropdownlist创建一个自定义htmlhelper(扩展方法),以接受selectlistitem的Option标记中的自定义属性. 我的模型类中有一个属性,我想在选择列表的选项标签中包含一个属性. 即 option value =“”modelproperty =“” / option 我遇到了各种各样的例子,但
我想为dropdownlist创建一个自定义htmlhelper(扩展方法),以接受selectlistitem的Option标记中的自定义属性.
我的模型类中有一个属性,我想在选择列表的选项标签中包含一个属性. 即< option value =“”modelproperty =“”>< / option> 我遇到了各种各样的例子,但对我想要的东西并不十分具体. 解决方法
试试这个:
public static MvcHtmlString CustomDropdown<TModel,TProperty>( this HtmlHelper<TModel> htmlHelper,Expression<Func<TModel,TProperty>> expression,IEnumerable<SelectListItem> listOfValues,string classPropName) { var model = htmlHelper.ViewData.Model; var metaData = ModelMetadata .FromLambdaExpression(expression,htmlHelper.ViewData); var tb = new TagBuilder("select"); if (listOfValues != null) { tb.MergeAttribute("id",metaData.PropertyName); var prop = model .GetType() .GetProperties() .FirstOrDefault(x => x.Name == classPropName); foreach (var item in listOfValues) { var option = new TagBuilder("option"); option.MergeAttribute("value",item.Value); option.InnerHtml = item.Text; if (prop != null) { // if the prop's value cannot be converted to string // then this will throw a run-time exception // so you better handle this,put inside a try-catch option.MergeAttribute(classPropName,(string)prop.GetValue(model)); } tb.InnerHtml += option.ToString(); } } return MvcHtmlString.Create(tb.ToString()); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-4 – 编辑视图中多选列表框的超级简单实现
- asp.net – Safari浏览器忽略我的无缓存
- asp.net-mvc – asp.net mvc中的动态子域
- asp.net – 如何根据用户角色启用和禁用按钮?
- ASP.NET Ajax控件套件与JQuery
- asp.net-mvc – 用ASP.NET MVC实现MEF?
- asp.net-mvc-3 – WebAPI PUT / POST中的部分实体更新
- asp.net – WebApi:将参数映射到标头值
- asp.net – 使Windows身份验证和WKHTMLToPDF发挥得很好
- asp.net-mvc – 将CSS添加到视图或部分视图
推荐文章
站长推荐
- asp.net-mvc – ‘/’应用程序中的ASP.NET MVC3
- asp.net – 抽象通用ODataController类导致“没有
- 如何将asp.net的后台cs代码移动到页面上
- asp.net – 无法为’localhost’生成绑定重定向.
- asp.net-mvc – MVC 5中的TryUpdate()和Update()
- ASP.NET MVC C#在类中获取控制器和操作名称
- asp.net-mvc – 自定义HtmlHelper扩展方法在View
- asp.net-mvc – ASP.NET MVC应用程序显示奇怪的字
- 一步一步创建ASP.NET MVC5程序[Repository+Autof
- asp.net – 查找和删除孤立的网页,图像和其他相关
热点阅读