首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建内容管理页面

如何创建内容管理页面
EN

Stack Overflow用户
提问于 2014-03-17 13:00:07
回答 2查看 157关注 0票数 0

我有一个需要添加内容管理页面的ASP.NET MVC应用程序。因为它是CMS,页面的路径将是可变的。我试图弄清楚如何让ASP.NET显示一个可变的视图。控制器是什么样子的?

代码如下所示: Dim MyView作为新的System.Web.Mvc.ViewResult()返回MyView

但这并不让我定义视图的内容,我不知道该如何做。视图在物理上并不存在;我需要从数据库中的数据动态生成视图。我正在将HTML存储在数据库中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-17 16:29:42

您可以“手动”创建内容,无需Razor视图,并在操作方法中使用生成的HTML而不是View返回View

编辑:

或者,使用接受生成的内容作为字符串的所有公共元素创建一个主视图:

代码语言:javascript
复制
@model string
<html>
  <!-- all the common stuff here -->
  @Html.Raw(Model)
  <!-- more common stuff -->
</html>

控制器将生成HTML并将其传递给此视图:

代码语言:javascript
复制
public ActionResult Index()
{
    var html = GenerateContent(); // or whatever
    return ActionResult("MasterView", (object)html);
}

重要的是将第二个参数转换为对象,否则它将被解释为布局位置。

如果您需要在公共组件之间插入生成的内容,您可以将字符串字典作为模型传递,并只呈现您喜欢的部分,例如。Html.Raw(Model["footer"])

票数 1
EN

Stack Overflow用户

发布于 2014-03-17 13:09:23

控制器是什么样子的?

代码语言:javascript
复制
public ActionResult Index()
{
    string dynamicViewName = "~/Views/Shared/FooBar.cshtml";
    return View(dynamicViewName);
}

如果愿意,还可以指定布局:

代码语言:javascript
复制
public ActionResult Index()
{
    string dynamicViewName = "~/Views/Shared/FooBar.cshtml";
    string dynamicLayout = "~/Views/Shared/_SomeLayout.cshtml";

    return View(dynamicViewName, dynamicLayout);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22454949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档