您可以编写一个带有λ表达式的强类型助手:
public static class StatusExtensions
{
public static IHtmlString StatusBox(
this HtmlHelper helper,Expression> ex
)
{
return new HtmlString(
"Some things here ... " +
helper.HiddenFor(ex));
}
}
接着:
@Html.StatusBox(model => model.RowInfo.Created)
更新:
根据评论部分的要求,这里是帮助者的修订版本:
public static class StatusExtensions
{
public static IHtmlString StatusBox(
this HtmlHelper helper,RowInfo>> ex
)
{
var createdEx =
Expression.Lambda>(
Expression.Property(ex.Body,"Created"),ex.Parameters
);
var modifiedEx =
Expression.Lambda
);
return new HtmlString(
"Some things here ..." +
helper.HiddenFor(createdEx) +
helper.HiddenFor(modifiedEx)
);
}
}
接着:
@Html.StatusBox(model => model.RowInfo)
不用说,应该使用自定义HTML帮助程序来生成HTML的一小部分.复杂性可能会快速增长,在这种情况下,我建议您使用RowInfo类型的编辑器模板.