将html传递给函数asp.net mvc

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

Dar*_*rov 6

我建议你看看模板化的剃刀代表.因此,在您的情况下,帮助程序可能看起来像以下几行:

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)