将MVC添加到ASP.NET网站
我想向现有的网站项目(不是Web应用程序项目)添加MVC支持,并提出一些问题将MVC添加到ASP.NET网站,asp.net,asp.net-mvc,asp.net-mvc-3,Asp.net,Asp.net Mvc,Asp.net Mvc 3,我想向现有的网站项目(不是Web应用程序项目)添加MVC支持,并提出一些问题 为了获得VisualStudio的MVC优势,我似乎需要更新.csproj文件的节点。网站项目中没有csproj文件 似乎我需要在App\u code中创建模型和控制器文件夹。这是真的吗?我更喜欢将这些文件夹放在根目录下 对于视图我应该创建aspx和aspx.cs文件吗?这种设置是否支持cshtmlrazor文件 如有任何其他回复,我们将不胜感激。感谢ASP.NET MVC不支持网站模板,它只能是web应用程序。因此,
.csproj
文件的
节点。网站项目中没有csproj
文件李>
App\u code
中创建模型
和控制器
文件夹。这是真的吗?我更喜欢将这些文件夹放在根目录下视图
我应该创建aspx
和aspx.cs
文件吗?这种设置是否支持cshtml
razor文件如有任何其他回复,我们将不胜感激。感谢ASP.NET MVC不支持网站模板,它只能是web应用程序。因此,您无法将MVC功能添加到Web Forms project。如果您将Global.asax文件放在网站的根目录中,我以前见过这种方法。您的项目需要一种方法来识别和区分MVC请求和标准请求,如下所示:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute("Default",
"{controller}.mvc/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
}
因此,应用程序中的MVC url可能如下所示:我相信如果您设置了一个新的MVC项目,并将web表单复制到新项目中,它们将按预期呈现 我没有尝试过太多,但出于好奇,我在过去尝试过,web表单仍然呈现良好状态。我想这取决于你的项目的复杂性,这个方法是否有效
这将涉及更改项目类型。对于asp.net MVC2及以上版本,MVC团队将核心功能划分为 三个不同的程序集,每个程序集都从通用系统扩展而来。Web程序集:
- System.Web.Routing
- System.Web.Abstractions
- System.Web.Mvc
祝你好运,希望这对你有所帮助。我已成功地将ASP.NET MVC 3添加到Webforms项目中,以下是一些建议:
- 添加
作为单独的类库项目,并从Web表单Web项目添加对此项目的引用控制器
- 我试图获得VS MVC支持(如goto controller等),但将GUID
添加到{E53F8FEA-EAE0-44A6-8774-FFD645390401}
文件没有帮助李>.csproj
- 是的,您可以添加引用以从类库获取会话。如果您想编写单元测试,您总是可以模拟它
- 将
文件夹添加到根目录视图
- 在
App\u code
- 如果您正在使用Razor,则需要添加
和System.Web.Razor
参考System.Web.WebPages
- 如果您使用的是Razor,请按照以下步骤更新
Web.config
- 请记住,您可以将服务器控件添加到视图中,只要它们不使用回发(我必须使用webforms项目中的许多服务器控件)
<appSettings>
<add key="webpages:Enabled" value="true" />
</appSettings>
不太好。此设置允许直接浏览razor页面,在我的情况下,当设置为TRUE时,会导致所有内容中断。话虽如此,我只是在我的视图子文件夹中使用razor页面,但是我发现很好的是从我的.aspx页面向App_代码目录中定义的控制器进行AJAX调用,这样我就可以使一个大部分都是回发的应用程序现代化,而C#可以访问VB.NET编写的数据层。你需要切换到一个web应用程序,AFAIK.@SLaks-我的理解是,切换到web应用程序是一种更干净的方式,但这不是必需的。现有的项目确实非常复杂。我可以将MVC项目添加到它中,但是我不会创建新的MVC项目,而是将webforms项目复制到它中,除非我真的需要。如果我最终朝那个方向走,你有什么资源可以帮助我吗?是的,这是可能的。然而,我很想知道我是否可以在一个网站项目中获得VS MVC goodness(以及前面列出的其他问题),你不必区分MVC&