你是否将一系列复杂的Razor传递给辅助参数?这是我能想到的最好的,但它不可能是正确的:
@helper Bold(MvcHtmlString fragment){
<b>@fragment</b>
}
@*
helper containing the fragment, otherwise redundant
*@
@helper Status(){
@Model.In@:/@Model.Total processed
}
@Bold(new MvcHtmlString(Status().ToHtmlString()))
编辑:我知道在大多数情况下,在ViewModel中最好完成Status
。
答案 0 :(得分:0)
View Helpers本质上是静态的,无法访问页面模型,如果需要生成Status
消息,最好在View-Model中进行:
public class MyViewModel
{
public int In {get;set;}
public int Total {get;set;}
public string GetStatus()
{
return In + "/" + Total + " processed";
}
}
你的助手看起来像是:
@helper Bold(string fragment){
<b>@fragment</b>
}
用法:
@Bold(Model.GetStatus())
或者,您可以将In
和Total
作为参数传递给助手:
@helper Bold(string fragment){
<b>@fragment</b>
}
@helper GetTotal(int _in, int _total)
{
@_in @:/ @_total processed
}
用法:
@Bold(GetTotal(Model.In, Model.Total).ToString())