我可以在 Web 窗体中实现 MVC

Can I implement MVC in Web Forms

我有一件简单的事情要做 - 实现登录表单。我的雇主希望我使用 Web 表单,而我那顽固的屁股想要实现 MVC 模式(我已经拥有)。问题是我不知道如何实例化控制器。我 运行 调试,获取视图,但由于没有控制器(或模型),当我单击登录时没有任何反应,因为没有人可以响应该事件。

在哪里以及如何实例化控制器?

是的,你当然可以。

我引用: “截至 2014 年,这个问题的官方答案是使用 Web API,正如我一年前为 Simple Talk 写的这篇文章中所解释的那样。

将 Web API 层集成到 Web 窗体应用程序中再简单不过了。您只需插入 Web API 运行时,配置路由以便您准确决定要支持哪些 URL 并开始在 App_Code 文件夹中编写控制器 类。 Web API 遵循与 ASP.NET MVC 几乎相同的编程模型,并且非常容易学习。最后,就像编写控制器 类 配备了 public 可从 JavaScript 客户端调用的方法。

ASP.NET Web 窗体和 ASP.NET MVC 共享相同的运行时环境,并且请求通过完全相同的管道进行路由。甚至可以说 ASP.NET MVC 只是安装在 ASP.NET 请求管道上的全局 HTTP 处理程序。如果传入请求符合 MVC 处理程序支持的 URL 要求,则请求将路由到它;否则它会像往常一样由运行时处理。 “像往常一样”在这里的意思是就像它会进入一个普通的 Web 窗体应用程序一样。"

Here 是我上面引用的信息的来源。我建议您读一读,因为这非常有用,可以让您很好地理解 MVC 和 WebForms 之间的区别,以及如何混合架构。