Par*_*der 2 asp.net-mvc html-helper c#-4.0
我有Html帮助方法,创建一个复选框以及一些文本,我通过.
@Html.CheckBoxFor(x => x.SomeProperty,@<text> <ul> <li> </li> </ul> </text>}))
public static MvcHtmlString CheckBoxFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, bool>> expression, ?? )
{
var chkBox = helper.CheckBoxFor(expression).ToString();
return MvcHtmlString.Create(string.Format("<li>{0}</li><div>{1}</div>", chkBox, ??);
}
Run Code Online (Sandbox Code Playgroud)
那么我的方法的签名是什么呢.一些lambda /表达式或其他东西.
帮助将不胜感激.
问候
成员Parminder
我建议你看看模板化的剃刀代表.因此,在您的情况下,帮助程序可能看起来像以下几行:
public static MvcHtmlString CheckBoxFor<TModel>(
this HtmlHelper<TModel> helper,
Expression<Func<TModel, bool>> expression,
Func<object, HelperResult> template)
{
var chkBox = helper.CheckBoxFor(expression).ToHtmlString();
return MvcHtmlString.Create(
string.Format("<li>{0}</li><div>{1}</div>", chkBox, template(null))
);
}
Run Code Online (Sandbox Code Playgroud)
并在视图中:
@model MyViewModel
@using (Html.BeginForm())
{
@Html.CheckBoxFor(
x => x.SomeProperty,
@<text><ul><li></li></ul></text>
)
<input type="submit" value="OK" />
}
Run Code Online (Sandbox Code Playgroud)