【发布时间】:2010-06-28 17:56:04
【问题描述】:
对于需要大量非模型相关页面的 MVC 类型网站,是否有特定的设计实践?我的意思是,为每个页面都做一个控制器动作似乎很愚蠢;然而与此同时,这似乎是现实地做到这一点并遵守标准的唯一方法。是否有任何文档或示例可用于此类事情?
当我谈到非模型页面时,我指的是那些只是展示的东西;您可以使用标准 HTML 网站布局的静态信息。但它必须与网站的其他需要模型和验证/等的部分混合在一起。
【问题讨论】:
标签: asp.net-mvc
对于需要大量非模型相关页面的 MVC 类型网站,是否有特定的设计实践?我的意思是,为每个页面都做一个控制器动作似乎很愚蠢;然而与此同时,这似乎是现实地做到这一点并遵守标准的唯一方法。是否有任何文档或示例可用于此类事情?
当我谈到非模型页面时,我指的是那些只是展示的东西;您可以使用标准 HTML 网站布局的静态信息。但它必须与网站的其他需要模型和验证/等的部分混合在一起。
【问题讨论】:
标签: asp.net-mvc
为您的静态内容创建一个文件夹,并为这些页面添加一个忽略路由。这会导致这些页面直接传递到 IIS 以立即显示。
routes.IgnoreRoute("StaticPages/{*path}");
您也可以load static HTML content into an existing View。这样可以保留您在同一页面中处理动态内容的能力。
【讨论】:
我不认为对每个页面都进行操作听起来很愚蠢。这就是 MVC 的工作原理。
您可以像 Robert Harvey 建议的那样忽略某些路由,但是您的静态页面上会有 *.html 扩展名,但内部页面上没有,并且您将无法使用 Url. 和 @987654322 @ 用于链接到 MVC 操作的辅助方法。
我认为你应该顺其自然。
【讨论】:
对于常见的静态文件(例如帮助页面)提出了另一种替代方案,它更多地基于命名约定,但会在视图中的布局控制方面提供一定的灵活性:
【讨论】: