在MVC 3视图中排列代码块

Kon*_*rad 2 asp.net-mvc razor asp.net-mvc-3

我的MVC3项目中有一个复杂的View(cshtml).根据不同的变量,此代码的各个部分必须以不同的顺序显示.如何分离Razor/HTML代码块并将它们"包含"在适当的位置?寻找类似的东西:

@{ CODEBLOCK 1
...
}

@{ CODEBLOCK 2
...
}

@if (bla==1) {
    include CODEBLOCK 1
    include CODEBLOCK 2
} else {
    include CODEBLOCK 2
    include CODEBLOCK 1
}
Run Code Online (Sandbox Code Playgroud)

我不想使用HtmlPartial,因为我不想将所有变量,模型和其他内容传递给它.

Mor*_*sen 7

您可以使用辅助方法:

@helper CodeBlock1()
{
    ...
}

@helper CodeBlock2()
{
    ...
}

@if (bla==1) {
    CodeBlock1();
    CodeBlock2();
} else {
    CodeBlock2();
    CodeBlock1();
}
Run Code Online (Sandbox Code Playgroud)

作为奖励,它是类型安全的并允许参数.