【问题标题】:Call action of my controller from WebForms从 WebForms 调用我的控制器的操作
【发布时间】:2014-01-30 15:00:55
【问题描述】:

需要:从 WebForms 调用我的控制器的操作并将结果设置在特定的 div 中。

我的 Web 应用程序是用 Webforms 和 Mvc 编写的 我需要在我的 Webforms 中将我用 Webforms 编写的用户控件替换为用 MVC 编写的另一个视图。

那么如何在我的webform中调用mvc的view,我必须调用Webforms1.Aspx,并且内容必须包含我的view mvc和其他views。 但是没有使用Reponse.Redirect,因为打印了完整的流,但是我必须在小div中打印视图mvc。

我尝试编写允许我打印 mvc 视图的助手

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="MvcApplication1.WebUserControl1" %>
<% RoutingWebFormSimulator.RenderViewMvc("~/Views/Home/Index.cshtml"); %>

在我的助手中,我搜索以通过反射调用操作,但没有结果。

【问题讨论】:

  • 虽然 webforms 和 MVC 可以同时存在于同一个站点中,但它们不能真正相互交互,因为它们都有自己的处理管道。正如@MikeSmithDev 在下面建议的那样,您可以期望的最好结果

标签: c# asp.net-mvc webforms


【解决方案1】:

我认为最简单的方法是通过 AJAX 将其拉入,其中 somePath 是您将点击它的 URL(而不是像您的问题中那样直接指向 .cshtml 文件)。我使用与此类似的方法将部分内容拉入aspx 页面。如果您不使用 jQuery,则可以包含仅 javascript 版本:

<div id="example"></div>
<script>
    $(document).ready(function () {
        $.ajax({
            url: "somePath",
            success: function (data) {
                $("#example").html(data);
            }
        });
    });
</script>

【讨论】:

    猜你喜欢
    • 2021-07-28
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    相关资源
    最近更新 更多