Webform Master页面MVC PartialRender服务器事件未触发

时间:2014-10-09 13:20:21

标签: c# asp.net asp.net-mvc vb.net webforms

好的,所以我有一个webforms项目,我想开始做MVC。我希望MVC页面能够使用Webforms母版页,直到我可以将更多内容传递给MVC。我有一个解决方案,我发现你可以找到下面列出的(这个项目除了服务器事件之外工作得很好)

https://github.com/MicahArmantrout/BlackMagicMVC

enter image description here

我的问题是母版页中的服务器端事件没有触发。当您点击"点击我!" 时加载项目,该按钮将触发服务器事件,文本将变为"您点击我"。

enter image description here

如果你转到&#34;点击For MVC&#34; (这是一个MVC部分渲染),然后点击&#34;点击我!&#34; < / strong>服务器事件永远不会触发。知道为什么以及是否可以解决这个问题?

注意:这不仅仅是一个我在应用程序中占有一席之地的练习,这将非常有用。如果您想更多地了解这个项目,请参阅

http://trycatchfail.com/blog/post/ASPNET-MVC-3-Razor-C-and-VBNET-WebForms-A-Tale-of-Black-Magic-Voodoo.aspx

1 个答案:

答案 0 :(得分:1)

MVC中没有服务器端事件的概念。 MVC不会像ASP.Net WebForms那样将客户端事件连接起来并将它们转换为服务器端事件处理程序。

您有以下选择:

  • 在MVC(_Layout.cshtml)中重新创建母版页,然后在控制器中处理按钮点击。根据您的设计,需要进行一些重构。您需要决定如何或谁处理这些按钮点击。你可以在基本控制器中处理它们中的一些,但我建议你再看看你在master中做了什么,以及如何在MVC上翻译它们。
  • 反过来 - 在MVC中定义主页面,并在webforms中呈现它。

理想情况下,您的母版页不应该具有任何业务功能。它应该只是导航和风格。只要你坚持这一点,迁移到MVC就不会那么痛苦。