c# - 如何从 Controller MVC3 动态添加代码(或标记)到 View 代码

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

在我的 Controller 中, View 照常返回

return new View(myModel);

我想要的是向 View 添加一些额外的代码。例如。在特定条件下,将整个 View 标记“包装”在@section 中。比如我的观点是

<h2>@ViewBag.Title</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>

在处理完 Controller 的 Action 后,我希望返回的 View 是

@section MySection{
<h2>@ViewBag.Title</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
}

这可能吗?

谢谢

最佳答案

您的 Controller 为 View 注入(inject)标记通常不是一个好主意。

为什么不增强 View 模型以包含原始 View 模型和此条件?

class MyViewModel {
   MyModelType MyModel { get; set; }
   bool Wrap { get; set; }
}

在 View 中...

@if (!Model.Wrap) {
    <h2>@ViewBag.Title</h2>
    <p>
    @Html.ActionLink("Create New", "Create")
    </p>
}
@section MySection {
   @if (Model.Wrap) {
    <h2>@ViewBag.Title</h2>
    <p>
    @Html.ActionLink("Create New", "Create")
    </p>
   }
}

关于c# - 如何从 Controller MVC3 动态添加代码(或标记)到 View 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8106919/

相关文章:

javascript - ViewModel 中的 double 在 JavaScript 数组中四舍五入为整数

asp.net-mvc - 如何在 VS2012 MVC4 项目中设置 Ext.NET 2.0?

c# - ASP.NET MVC 3 在 JS 中获取编辑器 ID 和名称

c# - 哪些书籍帮助您掌握了 n-Tier 开发

asp.net-mvc - 神秘的 ASP.NET MVC Action 高延迟问题?

c# - 如何将参数从 Excel 中的 VBA 脚本作为参数传递到外部可执行文件 (C#)?

c# - 如何在 ASP.NET MVC 3 中将 Razor View 呈现为字符串?

javascript - 如何在 javaScript 函数中检查 null?

c# - 使用控制台应用程序客户端将输入列表填充到服务

c# - 使用c#获取本地系统ip地址