2013-03-19 53 views
1

我正在创建一个用C#编写的MVC 4网络应用程序。在其他功能,一个功能应允许用户导航到这样的页面:在MVC静态html处理c#

/pagecontroller/some-specific-page-name 

,或者替换地

/pagecontroller/12345 

这些网页中的内容大部分是静态的HTML。它很少改变。

我将是唯一一个添加新页面,我很高兴看到我是通过html还是通过CMS进行操作。

建议存储和处理这类内容的方法是什么?

我应该将html存储在数据库中并以这种方式传递它吗?我当然希望在数据库中有一些特定于页面的信息(例如页面类别等),但在数据库中放入大量的html似乎并不适合我。或者,我可以创建一个数据库,其中的文章名称对应于可以通过ajax弹出的静态html文档。造型不会发生在这些页面上,所以我没有看到那里的问题。尽管如此,随着文章的增多,感觉并不是100%正确。第三个非常愚蠢的想法是一个名为元素的表格。每行将包含一个或多个元素,代码可以使用某种模板将元素放置在所需的位置。

真正的诀窍是我希望这能够根据需要从小型项目扩展到更大型项目。

我没有使用webkit。

你如何建议我去做这件事?非常感谢。

编辑:我应该说 - 这些网页都不包含任何形式或需要在服务器端的方式可能很多。

+1

http://www.deliveron.com/blog/post/SEO-Friendly-Routes-with-ASPnet-MVC.aspx不错的指导。 – Joe 2013-03-19 18:10:39

+0

感谢您的链接。我对这种事情很熟悉。我可能不是很好地解释自己。我想你可以比较一下我正在做的杂志,每一页都是一篇文章。文章不会随着时间而改变。他们不需要是数据库动态的。那有意义吗?我可以做到这一点(在上面的大段落中,我抛出了一些可能的方式来完成它),但我想知道别人认为是处理大量页面的最佳方式(或为了便于理解,文章)。 – shubniggurath 2013-03-19 18:23:32

+0

实际上编写控制器并将信息传递给它是很容易的部分。我试图确定如何最好地存储和传递html页面(文章,如果你喜欢的话) – shubniggurath 2013-03-19 18:23:50

回答

1

我相信如果我理解你的delima,你可以使用mvc控制器提供的HandleUnknownAction功能。

你基本上可以设置它,这样你就可以重定向到你喜欢的任何url,如果它没有找到匹配的控制器,那么它会抛出一个UnknownAction Exception,并且你的覆盖会重定向到你想要的静态页面沿着...如果一个控制器动作确实存在,那么一切都正常运行。

我唯一的编辑是这样的:如果绝大多数的应用程序是静态html页面,几乎每个页面都会抛出一个未知的动作错误,您将首先破坏运行w/mvc的目的。

另请参见: Display View in folder without Controller or Action in ASP.net MVC

+0

除了静态页面之外,在应用程序中有很多事情发生,因此mvc。感谢HandleUnknownAction上的建议。我会让你知道它是如何工作的。 – shubniggurath 2013-03-19 18:28:31

+1

我已经使用HandleUknownAction覆盖来与您正在谈论的内容非常相似...祝您好运! – Rikon 2013-03-19 18:33:54

2

或者,您也可以覆盖mvchandler,做这样的事情:

https://github.com/noogen/phuncms/blob/master/src/Phun/Routing/PhunMvcRouteHandler.cs

或者你可以写自己的模块,并在web.config中设置它,类似于stackoverflow实现:

http://samsaffron.com/archive/2011/10/13/optimising-asp-net-mvc3-routing

请参阅phuncms azure demo上的示例,该示例链接到某个静态文件。

+0

这很酷。谢谢! – shubniggurath 2013-03-21 12:46:42