Переменный жизненный цикл на странице MVC - PullRequest
0 голосов
/ 15 декабря 2011

Быстрый, но тупой вопрос. Таких каскадов немного. Если я создам переменную на странице aspx, будет ли она доступна для ascx, который частично отображает мой aspx Кроме того, как страница aspx обрабатывает эти переменные? Я точно знаю, что эти переменные намного дольше, чем, скажем, переменная TempData или ViewData. Вот небольшой пример того, что мне интересно ...

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h3><% Response.Write(((ViewData["MESSAGE"] == null) ? "Edit Encounter Information" : ViewData["MESSAGE"] ));            
       int encounter = int.Parse((string)TempData["ENCOUNTID"]);
       int PopPatId = int.Parse((string)TempData["POPPATID"]);
       int PatID = int.Parse((string)TempData["PATID"]);
       int population = (int)TempData["POPULATIONID"];
       string templates1 = (string)TempData["TEMPLATES"];
       string MRN = ((TempData["MRN"] == null) ? "Add Patient":(string)TempData["MRN"]);
       ViewData["TEMPLATES"] = templates1;         
    %>        
    </h3>   
    <div id="countdownDiv" style="display:none">
    <p><font color="#990000"><b>Sorry, This Data has expired. Please Refresh The page.</b></font></p>    
    <%
        Html.BeginForm("EditTemplate", "PatientACO", new { Template = PatID, popID = population, PopulationPatID = PopPatId, Enc = encounter });
        TempData["TEMPLATES"] = templates1;
        %><input type="submit" value="Refresh" id="test" /><%
        Html.EndForm();%>     
</div>   
<% Html.RenderPartial("_EditTemplate"); %>
<%: Html.ActionLink("Back", "TemplateInfo", new { PopulationID = population, ActiveAll = "1" })%>

Примечание. Я создал переменные. Как долго они будут длиться? могу ли я теперь использовать эти переменные на странице ascx, которую я вызываю ниже?

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Эти переменные могут использоваться только в рамках страницы aspx. Любая страница, отображаемая с помощью RenderPartial или RenderAction, должна определить свой собственный набор переменных для использования. Если вам нужно обмениваться данными между страницей aspx и страницей ascx, то вам нужно передать модель или ViewData в ваше представление RenderPartial и получить доступ к данным таким образом.

0 голосов
/ 15 декабря 2011

Вы также можете передавать модели в частичные представления <%: Partial ("PartialViewName", Model)%>

...