У меня есть приложение MVC2 ASP.Net 4, в котором есть страница входа в систему, в которой используется макет с главной страницы приложения.Журнал «по умолчанию» на странице типичен:
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");
}
}
Это дает мне страницу, которую я хочу показать без макета главной страницы (не включая MasterPageFile =):
<%@ Page Language="C#" AutoEventWireup="true" Inherits="System.Web.Mvc.ViewPage<MySite.Web.Models.AccountLogIn>" %>
Страницапрекрасно отображает без использования (Html.BeginForm), но когда я его использую, я получаю исключение Object Reference.
Вот трассировка стека:
Трассировка стека:
[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" %>
, но это не помогает
Спасибо ...