MVC Razor是否可以在视图中定义要在同一视图中使用的部分?
例如:
@section menu {
@*Some code and markup here*@
}
//page continues here...
@RenderSection(menu)
这与用于将脚本提取到_layout文件底部的代码相同,但是当它是同一文件的一部分时,您不能使用它。
目前我一直在使用:
var menu = "@*Some code and markup here*@";
//page continues here...
@Html.Raw(menu)
但这并不理想,因为没有智能感知,一旦内容增长就会变得非常混乱。
提前致谢,
威尔
答案 0 :(得分:4)
在你的情况下......你可以使用Razor Helper而不是Section。
您可以在同一视图中定义一段或多次需要使用/重复使用的代码:
@helper MyMenu(int param1, string param2){
//Your logic and markup here.
}
然后,在视图的底部,您可以使用它:
@MyMenu(1, "foo")