让ASP.NET Mvc和Web窗体协同工作

时间:2009-03-12 17:51:16

标签: asp.net-mvc

很抱歉,如果已经提出此问题。

我目前正在开发一个小功能,并且正在尝试将ASP.NET Mvc框架实现到我当前的Web窗体Web应用程序中。我一直在关注我最近在堆栈溢出上找到的Professional ASP.NET 3.5 Mvc Chapter 13 pdf文档,以使Web Forms和Mvc一起工作。我已完成所有三个步骤:

  1. 添加了对库System.Web.Mvc,System.Web.Routing和System.Web.Abstractions

  2. 的引用
  3. 在我的网络应用程序中添加了两个目录:控制器和视图

  4. 更新了web.config以加载第一步中提到的三个程序集并注册了UrlRoutingModule HttpModule。我还将初始路由设置添加到我的Global.asax文件

    RouteTable.Routes.MapRoute(                 “默认”,“{controller} / {action} / {id}”,新{controller =“支持”,操作=“索引”,id =“”}                 );

  5. 一旦我尝试在ASP.NET Mvc框架之后运行我新创建的页面,我就会在以下代码中获得NullReferenceException:

    <%= Html.Encode(ViewData["Message"]) %>
    

    在我的控制器中,我将ViewData [“Message”]设置为“Message!”就像一个考验。我是否遗漏了一些设置我的Web应用程序以使用ASP.NET Mvc的内容?

    非常感谢任何帮助。

    谢谢,

1 个答案:

答案 0 :(得分:0)

从玩早期测试版到今天,我发现创建一个新的MVC应用程序并将我现有的文件“导入”到解决方案中比在现有应用程序中获得所有设置更容易。我认为没有理由在设置管道时变得越来越热,我可以从模板中为我编写。也许我太懒了。

我发现我可以通过MVC获得“遗留的ASP.NET”Web表单。整个项目唯一的问题是将应用程序路由到我的default.aspx开始。比通过多个步骤包含MVC容易得多。

我知道这不是你问题的直接答案,但我认为尝试它也可以解决你的问题。另一个好处是你可以保留旧的“遗留”源代码,以防错误修复。但是,无论如何,你应该处于源代码控制之下。