2009-10-01 7 views
0

MVC 상점 프런트 버전을 구축 중입니다. 나는 두 가지 테마를 가지고 있는데 하나는 표준 UI이고 다른 하나는 관리자 UI이다. 예제와 마찬가지로 .ascx 파일에 .ascx 파일을 제공하지만 플러그인이없는 HTML 도우미 메서드가 있습니다. 모든 내용은 기본 테마에서 작동하지만 그 중 아무 것도 관리 테마에서 작동하지 않습니다. Html.SimpleActivityTypeList()가 발생하면 항상 동일한 오류가 발생합니다. Html.RenderPartial ("AdminLeftNav")는 항상 정상적으로 작동합니다.HTTPContext에 값이 있는지 확인하는 방법은 무엇입니까?

<asp:Content ID="Content3" ContentPlaceHolderID="NavContent" runat="server"> 
    <% Html.SimpleActivityTypeList(); %> 
    <% Html.RenderPartial("AdminLeftNav"); %> 
</asp:Content> 

다음과 같은 확장 클래스에 대한 메소드가 추가되었습니다.

public static void SimpleActivityTypeList(this HtmlHelper helper) 
    { 
     helper.RenderAction<CatalogController>(x => x.SimpleActivityTypeList()); 
    } 

그리고 내가 말한 것처럼 기본 테마에서는 정상적으로 작동합니다. 도와주세요.

Stack Trace: 


[ArgumentNullException: Value cannot be null. 
Parameter name: httpContext] 
    System.Web.Routing.RequestContext..ctor(HttpContextBase httpContext, RouteData routeData) +85 
    Microsoft.Web.Mvc.ViewExtensions.RenderRoute(HtmlHelper helper, RouteValueDictionary values) +367 
    Microsoft.Web.Mvc.ViewExtensions.RenderAction(HtmlHelper helper, Expression`1 action) +113 
    GrandGuide.Web.CMSExtensions.SimpleActivityTypeList(HtmlHelper helper) in C:\S3_Depot\S3_Dev\GrandGuide\GrandGuide.Web\Infrastructure\Helpers\CMSExtensions.cs:55 
    ASP.views_themes_admin_index_aspx.__RenderContent3(HtmlTextWriter __w, Control parameterContainer) in c:\S3_Depot\S3_Dev\GrandGuide\GrandGuide.Web\Views\Themes\Admin\Index.aspx:7 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +256 
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 
    System.Web.UI.Control.Render(HtmlTextWriter writer) +10 
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 
    ASP.views_themes_admin_theme_master.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in c:\S3_Depot\S3_Dev\GrandGuide\GrandGuide.Web\Views\Themes\Admin\Theme.Master:33 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +256 
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 
    System.Web.UI.Control.Render(HtmlTextWriter writer) +10 
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134 
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 
    System.Web.UI.Page.Render(HtmlTextWriter writer) +29 
    System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer) +71 
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1266 
+0

오류가 무엇입니까 과거에 내가 사용한 적이? 스택 추적을 게시 할 수 있습니까? –

답변

0

자세한 정보가 도움이 될 것입니다. 당신이 상황에서 뭔가를 액세스하는 경우 이러한 세션 변수로,

if (null != HttpContext) 

또는 :

if (null != HttpContext.Current.Session["my_var"]) 
+0

제안 해 주셔서 감사합니다. 당신이 작성한대로 할 수 있지만, 진정한 목표는 결코 null 문맥을 가지지 않는 것입니다. 컨트롤러의 속성을 검사하여 적절한 UI 테마와 마스터 페이지 파일을 식별하는 사용자 정의보기 엔진을 사용하고 있습니다. – Alpinfish

관련 문제