【问题标题】:Webform Master page MVC PartialRender server event not firingWebform 母版页 MVC PartialRender 服务器事件未触发
【发布时间】:2014-10-09 13:20:20
【问题描述】:

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

https://github.com/MicahArmantrout/BlackMagicMVC

我的问题是母版页中的服务器端事件没有触发。当您加载项目时,如果您点击 “Click Me!”,该按钮将触发服务器事件,并且文本将更改为 “You clicked me”。 p>

如果您转到 “Click For MVC”(这是 MVC 部分渲染),然后单击 “Click Me!”,则服务器事件永远不会触发。知道为什么以及是否可以解决此问题吗?

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

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

【问题讨论】:

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


    【解决方案1】:

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

    您有以下选择:

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

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

    【讨论】:

    • 是的,但是母版页仍然在 Webforms 中,所以那部分不应该连接起来吗?至于业务逻辑不应该在母版页中......我同意......我继承了这个项目,所以它不是我真正的选择:)
    • 不在局部视图中。 runat=server 是这里的秘诀。 MVC 不知道是什么意思,只有 webForms 明白。
    • 酷我想这是一个显而易见的答案,但对于一个来自网络表单世界的人来说,我真的很感谢你的帮助!
    猜你喜欢
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多