Razor是否可以使用ASPX .Master页面查看?

bka*_*aid 38 asp.net-mvc razor

是否可以保留现有的.master页面并将其与新的ASP.NET MVC 3 Razor视图一起使用?我试过这个:

@{
   LayoutPage = "~/Views/Shared/Site.master";
 }
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误信息:

无法呈现文件'〜/ Views/Shared/Site.master',因为它不存在或不是有效页面.

And*_*rse 34

很不幸的是,不行.母版页是ASPX WebForms视图引擎的一部分,而不是MVC框架,因此Razor无法与之互操作.

如上所述,一种选择是复制母版,但不是复制所有代码,你可以将Master页面分解为Razor和ASPX大师可以嵌入的一堆ASPX部分.然后你可以开始将每个页面和部分,一个一个地转换为Razor,最终摆脱ASPX主控.


Mat*_*utt 25

实际上有一种方法可以做到这一点.Scott Hansleman有一篇关于这个主题的博客文章:http://www.hanselman.com/blog/MixingRazorViewsAndWebFormsMasterPagesWithASPNETMVC3.aspx

这有点hackish,但可行.我认为所描述的方法可以进一步封装和清理,以便您可以构建视图和控制器,而无需担心事情是如何连接在一起的.


ser*_*nfo 8

我想你需要在共享文件夹中查找_Layout.cshtml ...

这是aspx和razor视图引擎之间的比较....

http://weblogs.asp.net/shijuvarghese/archive/2010/07/29/aspx-and-razor-view-engines-in-asp-net-mvc-3-preview-1.aspx

这也是关于使用剃刀的嵌套主页的一篇有趣的帖子......

http://weblogs.asp.net/fredriknormen/archive/2010/08/01/asp-net-mvc-3-0-preview-1-razor-and-nested-master-pages.aspx

HTH