混合ASP.NET网页/ MVC网站的困难

时间:2014-01-21 22:40:14

标签: asp.net asp.net-mvc razor asp.net-webpages

我刚开始将现有的ASP.NET Web Forms网站转换为ASP.NET MVC。但是,某些页面的MVC似乎过多。 ASP.NET Web Pages似乎更适合于MVC的好处不明确的简单页面。

如果我将ASP.NET网页用于某些页面,而将MVC用于其他页面,那么如果将MVC用于每个页面,我可能会遇到哪些困难?

这是我已经意识到的一个难点:Web Pages and MVC cannot share _Layout.cshtml

修改

上述内容经过大量编辑,以澄清问题的意图。

3 个答案:

答案 0 :(得分:0)

最大的痛苦是维护母版页和__Layout视图。这就是说我和汤米在一起 - 为什么不把这些静态页面变成html文件而不是aspx页面。

答案 1 :(得分:0)

我对此做了一些研究,现在完全理解你的问题的范围。抱歉,我认为你的意思是Web表单而不是相对较新的网页是我的错误。

任何人在这里给出的答案都是非常主观的,但我对此的看法是继续坚持使用MVC方法而不是混合模式。似乎网页是基于剃刀的HTML文件,没有与之关联的控制器/操作。如果这确实是你问题的唯一主要区别/原因,那么它似乎需要额外的三行代码才能使它成为MVC ......

public ActionResult StaticFile(){
     return View();
}

实际上将a)更容易在将来添加动态数据,b)更直接地与路由联系(例如,没有静态的特殊路由)和c)如果你不得不更容易与服务器端交互做任何形式的身份验证,会话跟踪等等。无论如何,我的2美分。采用有效的方式,但请记住在您使用您的网站时未来修改的麻烦/挫折。我发表这个意见时承认从未使用过网页,只需几个小时阅读它们。

答案 2 :(得分:0)

我决定放弃ASP.NET网页并在我的网站上独占使用MVC。主要原因是由于Web页面和MVC之间无法共享的内容的重复工作。这是我学到的一些东西。

  1. 网页和MVC无法共享_Layout页面。我能够通过将共享内容移动到网页_Layout和MVC _Layout文件可以共享的子布局文件来解决这个问题。

  2. 表单身份验证没问题。

  3. 我无法弄清楚如何在网页中实现MvcSiteMapProvider以获取痕迹导航功能。 (见this question。)

  4. MvcSiteMapProvider难度让我意识到,直到我发现其他一些无法轻易分享的东西,这只是时间问题。因此,保持MVC而不是采用混合方法似乎更聪明。