【问题标题】:How to create view page dynamically in asp.net mvc3如何在asp.net mvc3中动态创建视图页面
【发布时间】:2012-04-05 04:39:23
【问题描述】:

我正在使用 mvc 进行分类广告项目。 这是我在 mvc 中的第一个项目,所以我在构建一个小型 CMS 时遇到了问题。

在这个网站场景中是这样的:

  1. 用户将创建一个页面,该页面将动态创建,该页面将作为其主页。
  2. 此页面内容(如页眉、菜单栏、页脚等)将动态创建。
  3. 用户可以添加更多关于我们的页面或联系我们。正如您对 www.wordpress.com 所做的那样。

我使用 dynamically 表示由 c# 或任何其他方法生成的词

所以我很困惑如何创建这些页面以及如何保存和管理这些页面的css、html。

请帮助我解决任何书籍或文章(我搜索了很多但没有找到解决方案)

我不想使用任何 CMS 工具(这是客户的要求)

【问题讨论】:

  • 这是否可以在一个操作上创建多个视图...?

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


【解决方案1】:

我不知道有任何专门针对从头开发 CMS 的书籍。

除了Travis J的答案中已经列出的好书,我建议你看看Umbraco。这是一个 CMS,您可以下载源代码。

我强烈建议您在深入了解 Umbraco 资源之前,至少先阅读 ProfessionaL ASP.NET MVC 3Pro ASP.NET MVC 3 Framework 之间的至少一个。

【讨论】:

  • 这是否可以在一个操作上创建多个视图...?
  • 是的。你可以有一个方法来执行一些逻辑并输出不同的视图。
【解决方案2】:

ORCHARD CMS - 它是在 ASP.NET MVC 上开发的。 也许您可以将此 CMS 用作您的基础,然后开发您需要的确切扩展。

【讨论】:

  • 我没听说过这个。下载下来看看源码,因为我对mvc比较陌生。
【解决方案3】:

【讨论】:

  • 我同意这些都是好书,但我认为 OP 正在要求一本关于在 MVC 中开发 CMS 的特定书。而且我认为没有。
  • @Iridio - 我也不知道,所以我提供了我所知道的最好的。这些将为您提供开发自己的 CMS 的基础知识,这正是我认为 OP 所暗示的。
  • 所以任何其他构建 CMS 的帮助材料
  • @StackMe - 虽然没有在 asp.net mvc3 中完成,但您可能需要查看 joomla 上的公共文档,这是一个开源 php 内容管理系统。您可以查看他们采用的方法并尝试移植一些功能。
【解决方案4】:

您不会动态创建 cshtml 页面。这听起来像是一个基本的误解。我是 .net mvc 的新手,所以我的代码示例可能已关闭。但我做过很多CMS。一个视图将是“从数据库中渲染内容”视图,我将其称为 RenderStuff。您将在那里定义许多不同的部分,因此您的主布局页面可以@RenderSection("header"),而您的 RenderStuff 视图可以:

@section header {
  //query db for header row based on customer and pageid
  //if found, write out as html
}

您可能希望设置路由,以便始终拥有客户和页面 id 这两个路由参数:

context.MapRoute(
                "Stuff_default",
                "Stuff/{controller}/{action}/{customer}/{pageid}"}
            );

CMS 的功能远不止于此。

【讨论】:

  • 我也在思考这个概念。但问题是如何管理其正文内容和每个页面的 css,例如,如果用户放置图像及其一些文本描述,那么如何管理这些东西
  • 这就是构建 CMS 的全部意义所在。你不允许无限的灵活性。您允许使用一些模板,因为您最终总是只有几个页面从数据库中提取数据并将其放入页面上的字段中。检查 Blogger 或 WordPress。您可以在控制器中执行某些操作,在其中查询“客户和页面 ID,这是什么模板”,然后返回 View("picsLayout") 或返回 View("mainLayout")。请注意,ASP.Net MVC 可以编写 CMS,但在此任务上,它与 php 或经典 ASP 相比没有特别优势。
猜你喜欢
  • 1970-01-01
  • 2011-04-25
  • 2012-04-16
  • 2012-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
相关资源
最近更新 更多