加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 可以在当前使用ASP .NET的Web应用程序中使用MVC

发布时间:2020-12-16 07:05:07 所属栏目:asp.Net 来源:网络整理
导读:我最近加入了一个管理Classic ASP Web应用程序的小组.它一直很好地满足了我们团队的需求.但是,在我加入之前,我决定转向ASP .Net.由于我们主要是ASP开发人员,因此我们在ASP .Net中编写代码,就像在Classic ASP中一样(大多数情况下).是否有可能将MVC引入此应用
我最近加入了一个管理Classic ASP Web应用程序的小组.它一直很好地满足了我们团队的需求.但是,在我加入之前,我决定转向ASP .Net.由于我们主要是ASP开发人员,因此我们在ASP .Net中编写代码,就像在Classic ASP中一样(大多数情况下).是否有可能将MVC引入此应用程序/项目?

谢谢!

解决方法

是的,可以在传统的WebForms项目中使用MVC.几年前我将一个大型WebForms项目迁移到了MVC 2,这是我的发现(我更新了它们以反映MVC 3)

>确保安装了.NET 4.0,以及MVC 3框架和VS扩展.
>创建一个新的空白MVC项目以用作参考.
>查看参考项目的默认web.config.您基本上想要使用引用web.config,并从当前项目中合并您需要的东西.
>查看参考global.asax.cs.与上面类似,您希望将引用.cs中的更改合并到当前应用程序的global.asax.cs中.
>您需要将以下引用添加到您的Web项目:

System.Web.Abstractions,
???System.Web.Extensions程序,
???System.Web.Helpers,
???System.Web.Mvc,
???System.Web.Routing
>您可以通过更改ProjectTypeGuids来启用VS扩展:

>在解决方案资源管理器中,右键单击项目名称,然后选择“卸载项目”.然后再次右键单击项目名称并选择Edit ProjectName.csproj.
>找到ProjectTypeGuids元素并添加{E53F8FEA-EAE0-44A6-8774-FFD645390401}.
>保存更改,右键单击项目,然后选择“重新加载项目”.

>为MVC内容添加以下标准文件夹:

>?/ Views
>?/ Views / Shared
>?/控制器
>?/ Models(适用于您的视图模型,可选)
>?/ Content(适用于CSS和图像,可选)
>?/ Scripts(对于JS,可选)

补充说明:

>如果您的现有WebForms依赖于web.config设置进行授权(例如阻止未经授权的用户),则MVC操作将无法识别此操作,因为路由与WebForms授权完全分开.使用AuthorizeAttribute要求授权,或将操作约束到某些角色或用户.您甚至可以使用specify global filters,因此您不必在每个控制器或操作上应用此属性.
>对于使用7之前的IIS版本或使用Classic管道的应用程序池,可能还有其他注意事项.考虑使用带有集成管道的IIS 7.
>我上面的笔记主要涉及获取MVC工作的基线,它使用ASPX视图. ASPX视图使用与您在WebForms中使用的ASPX文件相同的标记.您还可以使用新的Razor语法(primer),我强烈推荐.您可以同时使用ASPX和Razor视图页面.但是,您不能在Razor视图上使用ASPX母版页(反之亦然).此外,MVC将在Razor视图之前查找并使用ASPX视图,因此如果将视图升级到Razor,请删除原始ASPX.您需要做一些额外的工作来启用Razor视图.我正在尝试找到启用Razor的笔记.我找到它们时会更新.一旦安装了Razor并运行,您可以使用this tool by Telerik将ASPX转换为Razor.
> Here is a question关于我在升级时遇到的问题.我只提供它,因为它涵盖了我上面提到的一些更详细的要点.但是,我当时正在升级到MVC 2,所以这些东西已经过时了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读