Как передать значение из контроллера ASP.NET MVC в элемент управления веб-формы ASP.NET внутри MVC View? - PullRequest
2 голосов
/ 24 декабря 2010

Мой путь к ASP.NET MVC был не через веб-формы ASP.NET, поэтому мне сложно понять, как лучше передать значение из контроллера ASP.NET MVC в сценарий веб-форм ASP.NET, который находится внутри MVC View.

Например, действие контроллера:

 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в View вместо "stubvalue"?

Ответы [ 3 ]

1 голос
/ 24 декабря 2010

Я бы вставил в бит веб-формы, а не включил бы его напрямую - есть много способов, которыми он может сломаться в зависимости от компонента.Затем вы можете передать значение через строку запроса.

1 голос
/ 24 декабря 2010

Переместить вызов установщика в событие onload

защищенное переопределение void OnLoad (EventArgs e) {base.OnLoad (e);string par1 = (string) ViewData ["myvar"];ReportViewer1.Report = new MyProj.Web.Reports.Rep1 (par1);}

1 голос
/ 24 декабря 2010

Вы пытались передать его через ViewData, как это?

в действии: ViewData ["myvar"] = "realvalue";

в представлении: строка parl = ViewData ["myvar"];

...