火焰

valeb
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

.Net MVC TextBoxFor 扩展 placeholder 与 class 属性

Posted on 2017-01-11 16:38  valeb  阅读(382)  评论(0)    收藏  举报
namespace System.Web.Mvc
{
    public static class HtmlHelperExtensions
    {
        public static MvcHtmlString BsTextBoxFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, string placeholder,string @class)
        {
            TagBuilder tagBuilder = new TagBuilder("input");
            ModelMetadata metadata = ModelMetadata.FromLambdaExpression<TModel, TProperty>(expression, htmlHelper.ViewData);
            string name = ExpressionHelper.GetExpressionText(expression);
            tagBuilder.GenerateId(name);
            tagBuilder.MergeAttribute("name", name, true);
            tagBuilder.MergeAttribute("type", "text");
            tagBuilder.MergeAttribute("placeholder", placeholder); 
            tagBuilder.MergeAttributes<string, object>(htmlHelper.GetUnobtrusiveValidationAttributes(name, metadata)); 
            tagBuilder.AddCssClass(@class);
            return new MvcHtmlString(tagBuilder.ToString());
        }
    }
}

 放到 MVC  Web  项目中。  placeholder   文本框中 提示的内容, class  属性  ,一般采用 Bootstrap  时 ,class 很好用