MVC页面上的可变生命周期

时间:2011-12-15 14:41:28

标签: asp.net-mvc variables lifecycle

快速但愚蠢的问题。那种级联一点点。如果我在aspx页面上创建一个变量,它将可用于我的aspx部分呈现的ascx。另外,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 个答案:

答案 0 :(得分:1)

这些变量只能在aspx页面的范围内使用。通过RenderPartialRenderAction呈现的任何页面都需要定义自己要使用的变量集。如果您需要在aspx页面和ascx页面之间共享数据,那么您需要将模型或ViewData传递到RenderPartial视图并以这种方式访问​​数据。

答案 1 :(得分:0)

您还可以将模型传递给部分视图&lt;%:Partial(“PartialViewName”,Model)%&gt;