asp.net-mvc - 在 MVC 3 View 中排列代码块

标签 asp.net-mvc asp.net-mvc-3 razor

我的 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
}

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

最佳答案

您可以使用辅助方法:

@helper CodeBlock1()
{
    ...
}

@helper CodeBlock2()
{
    ...
}

@if (bla==1) {
    CodeBlock1();
    CodeBlock2();
} else {
    CodeBlock2();
    CodeBlock1();
}

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

关于asp.net-mvc - 在 MVC 3 View 中排列代码块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7362329/

相关文章:

c# - 无法在 Asp.NET MVC 中命中 Api 路由

c# - 数据未在循环中保存在 ModelList 变量中。 "Index was out of range"

c# - ASP.NET MVC 从属性重定向

c# - 如何为 ASP.NET MVC3 创建全局自定义错误页面?

javascript - 无法使用 Jquery 获取 @Html.RadioButtonFor 的值,已检查属性未更改

javascript - 将 .aspx 页面 html 渲染/调用到另一个 .aspx 页面

asp.net - ASP.NET MVC + Entity Framework中Include()的用途

asp.net-mvc - 有没有一种方法可以为 MVC Controller 中的每个操作设置 [Authorize(Roles = "admin")]

javascript - Razor - 将 Json 结果从 Controller 转换为复杂对象

asp.net-mvc-3 - asp.net MVC 模型如何生成输入名称?