【发布时间】:2011-03-16 07:05:40
【问题描述】:
是否可以在现有的 ASP.NET 4 网站上使用 Razor?
【问题讨论】:
标签: asp.net-4.0 razor webmatrix
是否可以在现有的 ASP.NET 4 网站上使用 Razor?
【问题讨论】:
标签: asp.net-4.0 razor webmatrix
是的,您可以将 Razor 与现有的 ASP.NET 网站一起使用。只需使用 WebMatrix 工具打开您的网站并开始添加 CSHTML 文件。
一个警告是,如果您的网站使用 WebForms 控件,则 WebMatrix 工具将不会提供任何帮助在现有的 aspx 页面中使用它们。此外,Razor 不支持 WebForms,因此您将无法将 <asp:GridView> 之类的内容添加到 CSHTML 文件中。
【讨论】:
如果您已经安装了 VS2010 和 MVC 3(包括用于构建 ASP.NET Razor 网站的 Visual Studio 工具),您甚至不需要在 Web Matrix 中打开该站点。安装 MVC 3 后,开发 Razor 页面所需的库甚至可用于现有的 Web 应用程序。
见:
http://www.asp.net/webmatrix/tutorials/program-asp-net-web-pages-in-visual-studio
您无需创建新的网页站点(按照说明)。您可以打开一个现有网站,右键单击该网站的根文件夹,单击添加项目,您应该会看到“网页(Razor)”作为选项。
Inellisense 和调试在 Razor 页面中工作,就像 Web 表单页面一样
如上所述,请记住,ASP.Net Web Pages (Razor) 和 ASP.Net WebForms 是真正不同的平台,不能(或至少不应该)使用各自的可重用组件
【讨论】:
marcind 是正确的,如果您想在 WebMatrix 中打开现有的 ASP.NET 网站并从该工具中处理它。另一方面(或除此之外),如果您想在您的站点中使用 Razor 语法并保留在 VisualStudio 中,请查看这篇文章:http://weblogs.asp.net/rashid/archive/2010/07/10/use-razor-as-asp-net-mvc-viewengine.aspx
你需要做四件事:
添加对随 WebMatrix 安装的 Razor 程序集的引用。这些可以在 C:\Program Files\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies 中找到
创建一个自定义的 ViewEngine 类,一个继承自 IView 的 View 类(没那么难,查看上面文章中的源码)
在Global.asax Application_Start() 中添加新的 ViewEngine
ViewEngines.Engines.Add(new RazorViewEngine(("cs"));
使用.cshtml 扩展名创建您的视图页面,而不是.aspx
这里有几个步骤,但它的工作速度很快,上面文章中的源代码会让你走得很远。
【讨论】:
using (Html.BeginForm()) 之类的东西不起作用,其他与渲染部分视图相关的东西。