mvc4 自定義HtmlHelper
好久沒寫博客了,最近只看博客不寫的習慣很不好啊。
好了,最近的項目中大量的用到了表單,很多表單有特殊的編寫,但是在該項目中又有很多重復的地方,這個時候若能封裝成htmlhelper將大大降低工作量的。
下面給出基本的使用模型,備忘
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Web;
using System.Web.Mvc;
//引入下面的命名空間后,就可以在view中直接@出來了
namespace System.Web.Mvc
{
public static class FormHtmlHelper
{
private const string editorwidth = "100";
private const string editorheight = "100";
//給下面的方法指定第一個參數(shù)為this HtmlHelper helper,這樣就可以在@Ht中
//點出來了,否則你還得@[自定義類].[你的方法]。下面的方法看上去需要傳進去兩個值,
//實際上只要@Html.就可以點出來了
public static MvcHtmlString NecessaryLabeler(this HtmlHelper helper,string name)
{
var ntag = new TagBuilder("span");
ntag.AddCssClass("red");
ntag.SetInnerText("*");
var nametag = new TagBuilder("span");
//tag.AddCssClass("");
nametag.SetInnerText(name);
return new MvcHtmlString(ntag.ToString()+nametag.ToString());
}
//下面的方法可以把視圖的model傳進去,獲取值的方法看下面的lamda表達式。。。
public static MvcHtmlString DisabledEditorFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression)
{
object data = ModelMetadata.FromLambdaExpression<TModel, TValue>(expression, html.ViewData).Model;
if (data == null)
{
data="";
}
//to do what you want!
}
}
}

浙公網安備 33010602011771號