从普通的 .aspx 页面启动 ASP MVC 项目

2024-01-15

我有一个在 .NET 4.5 上运行的现有 ASP.NET 网站。我需要将 ASP MVC 4 项目(它自己的全功能 Web 应用程序)集成到其中,以便当用户导航到某个页面时,ASP MVC 应用程序在该页面内启动 - 几乎就像在一个iframe.

在主要解决方案中,我可以将两者设置为启动项目,但这显然不是我想要的。有人可以指出我如何做到这一点吗?我以前从未使用过 WCF,但是它可以用来做什么吗?谢谢你的一切!


您可以创建混合 Webforms - MVC 应用程序。

为此,您需要:

  • 将 MVC 配置从新 MVC 项目的 web.config 复制到 WebForms 应用程序 web.config
  • 创建标准 MVC 4 文件夹(至少 Views、Controllers)
  • 引用所需的程序集
  • 将 Views 内的 web.config 从 MVC 项目复制到 WebForms 项目 Views 文件夹
  • 更改路由配置以忽略包括 .aspx/.ascx 在内的路由,以便它们由 Web 表单处理,而不是 MVC(也对 .ashx、.asmx 或任何其他基于 Web 表单的工件执行此操作)

这样,您就拥有了一个支持 MVC 和 WebForms 的 ASP.NET 应用程序,并使用相同的身份验证、会话等。

然后你可以进行这种集成: - 制作完全 MVC 或完全 Web 表单的页面。如果您使用母版页,则需要为 Web 表单创建母版页以及 MVC 布局(这可能非常困难或非常简单,具体取决于其内容和设计) - 制作 Web 表单页面并使用 AJAX 和 MVC 部分视图集成 MVC 页面

除了我的评论之外,这篇博客文章还会对您有很大帮助:将 ASP.NET MVC 3 集成到现有升级的 ASP.NET 4 Web Forms 应用程序中 http://www.hanselman.com/blog/IntegratingASPNETMVC3IntoExistingUpgradedASPNET4WebFormsApplications.aspx

顺便说一句,这不是理论上的......我有一个包含大量页面、区域和视图的 Web 应用程序,它使用了这种技术,并且工作完美。我必须重新设计母版页(布局和 CSS),以便两种页面看起来相似。我很幸运能够使用 SQL XML 查询和 XSLT 在 Web 表单占位符中呈现菜单,因此在 MVC 布局中重新使用它绝对是容易的。您可以在母版页和 MVC 布局中执行类似的操作(我的意思是手动渲染 HTML,并在两个页面中使用它,这样只需完成一次)

您可能需要一些时间才能让它发挥作用,但这是值得的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从普通的 .aspx 页面启动 ASP MVC 项目 的相关文章

随机推荐

  • 将内置函数插入 VS Code 扩展的正确方法

    介绍 我目前正在开发一个基于 Bluegiga BLE 112 模块的应用程序 该模块可使用 BGScript 脚本语言进行编程 然而 我发现的唯一对 BGScript 有某种支持的编辑器是 Notepad 它不适合我的需要 因此 我开始开
  • 如何将链接中的变量传递给 django 视图

    我有一个 html 表单 它使用 for 循环显示数据 tbody for sku lid stk mrp sp stts in product data tr td a class btn link href product produc
  • 如何在 PHP 中将 MySQL 数据库转换为 SQLite?

    我需要 PHP 代码来转换数据库 我试过如何使用 PHP 将 mysql 转换为 SQLite https stackoverflow com questions 10226067 how to convert mysql to sqlit
  • Android 4.0 ICS 中通话音频流修改

    我一直在从事一个项目 该项目将从呼叫流修改中受益匪浅 这已被反复提及 假设为无法实现 因为大多数人认为通话音频的硬件环路与设备的主 MCU 完全断开 诸如此类的问题将音频流式传输至 Android 电话 https stackoverflo
  • OSX:当文件出现在文件夹中时执行bash脚本

    我正在尝试编写自己的屏幕截图上传器脚本 我快到了 OSX 自动将屏幕截图上传到 imageBin 并将 URL 放入剪贴板 https stackoverflow com questions 21371254 osx automatical
  • 如何配置 SCP/SFTP 文件存储?

    我的 Laravel 应用程序应该将文件复制到另一个远程主机 远程主机只能通过带有私钥的 SCP 进行访问 我想配置一个新的文件存储 https laravel com docs 5 5 filesystem 与FTP类似 https la
  • 将图像从 FilePicker/Intent 复制到另一个目录

    我正在尝试将从 Intent 收到的图像复制到另一个目录 但我还无法让它工作 需要帮忙 我的日志猫 04 29 14 56 22 778 31620 31620 com example krupal sqlitetest I Choreog
  • Elasticsearch 不同的过滤器值

    我在 elasticsearch 中有一个大型文档存储 并且想要检索不同的过滤器值以显示在 HTML 下拉列表中 一个例子是这样的 name John Doe deparments name Accounts name Management
  • ASP.NET MVC 和存储库模式理解

    所以我对 ASP NET MVC 和界面设计非常陌生 我问了很多问题 读了很多文章 试图弄清楚这一切 由于工作危机 我被要求尽我所能并学习这个环境 虽然理解起来很令人沮丧 但我正在慢慢理解它 I have created an image
  • 如何从具有相同键和值的两个数组中删除值?

    我有两个数组 array1 array param1 demo param2 some param3 array2 array value1 demo value2 some value3 我想比较这两个数组并删除所有重复值 最后 我想要这
  • 只从套接字接收一个字节

    我使用 python 编写了一个服务器程序 我试图获取一个字符串 但我只得到一个字符 我如何接收字符串 def handleclient connection while True rec connection recv 200 if re
  • 使用可运行的同一实例初始化两个线程

    使用同一个可运行对象实例初始化两个线程是不是不好的编程 使用可运行对象的单独实例进行初始化会有什么区别 并且同一可运行对象实例共享内存位置与性能有什么关系吗 public static void main String args throw
  • NPM-AUDIT 发现高漏洞。我应该做些什么?

    npm audit运行我的项目并得到这个 高指令注入 Angular devkit build Angular dev 的依赖关系 路径 angular devkit build angular gt ngtools webpack gt
  • HTML 嵌套规则到底在哪里? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人可以提供一个包含所有 HTML 最好是 HTML5 嵌套规则的文档的链接吗 例如 你不能把 div
  • 控制台2种颜色晒伤

    我正在尝试使用 Console2 在 Windows 7 电脑上使用 Solarized 颜色 但我无法让颜色正常工作 我尝试按照建议更改 console xml 中的条目here https github com stevenharman
  • 实现 ICollectionViewLiveShaping

    How is ICollectionViewLiveShaping为了过滤的目的而实施 是不是类似 public ICollectionView WorkersEmployed get set WorkersEmployed new Col
  • 如何将SQL Server查询结果的数据转换为JSON格式?

    我刚刚开始了解 Ajax 和 JSON 格式 我正在构建一个非常简单的地址簿 因此 为了简单起见 假设我有一个表有 3 列 Name Email and Phone 我的javascript jquery不是刚学的最好 但我想将从我的SQL
  • 为什么这不起作用?使用鼠标指针推动盒子

    我是 JavaScript 的初学者 试图制作一个简单的脚本 使用鼠标指针推动一个盒子 但不幸的是由于某种原因它不起作用 我希望你能帮助我 这个脚本真的很原始 到现在为止只从左边推动盒子 索引 html
  • 标记为已弃用的第三方类

    我有一些第三方库Foo与类FooBar 我认为那个班级FooBar设计得很糟糕 我想写自己的MyBar作为适配器模式 可以标注原件吗FooBar as Deprecated而不修改其代码 deprecated http download o
  • 从普通的 .aspx 页面启动 ASP MVC 项目

    我有一个在 NET 4 5 上运行的现有 ASP NET 网站 我需要将 ASP MVC 4 项目 它自己的全功能 Web 应用程序 集成到其中 以便当用户导航到某个页面时 ASP MVC 应用程序在该页面内启动 几乎就像在一个iframe