2

我的 ASP.NET MVC 方法不是跨 ASP.NET Web 窗体,所以我很难理解如何更好地将值从 ASP.NET MVC 控制器传递到 MVC 视图内的 ASP.NET Webforms 脚本。

例如,控制器动作:

 public ViewResult Print(string id)
    {
       ...
       string myvar = "realvalue"; 
       return View();
    }   

我的观点:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
...
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <script runat="server">
      ...  
     string par1 = "stubvalue";

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        ReportViewer1.Report = new MyProj.Web.Reports.Rep1(par1);
    }
    </script>
<telerik:ReportViewer runat="server" ID="ReportViewer1" />
</asp:Content>

如何将 myvar控制器操作的值分配给par1视图中的变量而不是“存根值”?

4

3 回答 3

1

您是否尝试过像这样通过 ViewData 传递它?

在行动中: ViewData["myvar"] = "realvalue";

在视图中:string parl = ViewData["myvar"];

于 2010-12-24T16:39:22.343 回答
1

我会 iframe 在 webform 位中而不是直接包含它——根据组件的不同,它可能会以多种方式中断。然后您可以将值传递给查询字符串。

于 2010-12-24T17:55:05.343 回答
1

将 setter 调用移动到 onload 事件

受保护的覆盖无效 OnLoad(EventArgs e) { base.OnLoad(e); string par1 = (string) ViewData["myvar"]; ReportViewer1.Report = new MyProj.Web.Reports.Rep1(par1); }

于 2010-12-24T19:37:19.967 回答