2
我需要一個登錄窗體部件塔爾出現在每一頁:asp.net的MVC:開發登錄窗體部件
- 當他用戶登錄,如果登錄失敗,用戶被重定向到同一頁面
- 重定向到相同頁面,看到錯誤信息提交登錄表單時
widget被渲染與Html.RenderAction
,我把當前頁面的URL(Java腳本),並將其發送到服務器 - 這樣我就可以登錄
public ActionResult Login(string email, string password, string returnUrl)
{
if (userService.AuthenticateUser(email, password))
{
FormsAuthentication.SetAuthCookie(email, true);
if (!string.IsNullOrEmpty(returnUrl))
return Redirect(returnUrl);
return RedirectToAction("Default");
}
else
{
ModelState.AddModelError("login_fail", "login failed");
if (!string.IsNullOrEmpty(returnUrl))
return Redirect(returnUrl);
return View();
}
}
問題是何時發生錯誤:我需要將它們展示給用戶,但是在登錄操作重定向後,所有ModelState數據都會丟失(有錯誤)。
問題是:我如何實現登錄小工具來滿足所有上述要求?
謝謝,寶貴的意見。 什麼我不喜歡TempData - 我不能使用Html.ValidationSummary顯示錯誤 - 我必須用手做 – kilonet 2010-08-23 11:03:16
@kilonet,你可以看看Jeremy Skinner的博客文章:http:// www。 jeremyskinner.co.uk/2008/10/18/storing-modelstate-in-tempdata-with-aspnet-mvc/可從這裏獲得源代碼:http://github.com/mvccontrib/MvcContrib/blob/master/src /MVCContrib/Filters/ModelStateToTempDataAttribute.cs,或者如果您已經在使用'MVCContrib',您可以直接使用此操作過濾器。這是一個非常乾淨的方法。 – 2010-08-23 11:50:54