MVC2 ASP.Net 4 앱에 응용 프로그램의 마스터 페이지의 레이아웃을 사용하는 로그온 페이지가 있습니다.Html.BeginForm - 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
using (Html.BeginForm("LogIn", "Home", FormMethod.Post, new { id = "LogIn" }))
{ ....form stuff...}
가 지금은 완전히 다른 레이아웃 페이지에서 로그를 표시해야하지만 로그온가 '기본'과 같은 것 (들)을 수행 할 : 페이지의 '기본'로그 전형이다 보기, 즉 동일한 컨트롤러 동작을 호출하고 동일한 웹 모델을 사용합니다.
그들은 사용자가 www.mydomain.com/alternateLogOn.aspx
에 가고 싶어 그래서 난 내 Global.asax에이 일을 해요:
protected void Application_BeginRequest(object sender, EventArgs arg)
{ if (Request.Url.PathAndQuery.ToLower() == "/AlternateLogOn.aspx")
{ Context.RewritePath("/Views/Home/AlternateLogOn.aspx");
}
}
이 나에게 내가 원하는 페이지를 얻는다 제 (Html.BeginForm)를 사용하여 W/O
<%@ Page Language="C#" AutoEventWireup="true" Inherits="System.Web.Mvc.ViewPage<MySite.Web.Models.AccountLogIn>" %>
페이지가 표시 좋은,하지만 난 그것을 사용할 때 나는 개체 참조 예외를 얻을 : (MasterPageFile = 제외) 마스터 페이지 레이아웃 O/w를 표시합니다.
스택 추적 : 여기
는 스택 추적의[NullReferenceException: Object reference not set to an instance of an object.]
System.Web.Mvc.Html.FormExtensions.BeginForm(HtmlHelper htmlHelper, String actionName, String controllerName, RouteValueDictionary routeValues, FormMethod method, IDictionary`2 htmlAttributes) +42
System.Web.Mvc.Html.FormExtensions.BeginForm(HtmlHelper htmlHelper, String actionName, String controllerName, FormMethod method, Object htmlAttributes) +214
ASP.views_home_alternatelogon_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in d:\Visual Studio 2010\MySite\MySite.Web\Views\Home\AlternateLogon.aspx:32
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130
System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer) +84
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5273
내가 <%@ Import namespace="System.Web.Mvc.Html" %>
를 추가하는 시도하지만
덕분에 ... 두 가지의
은 조금 혼란 스러워요 - 그것이 MVC 응용 프로그램 인 경우에, 왜 URL의이 .ASPX 확장합니까? –