我想添加一個登錄表單到ASP.NET MVC的默認_layout頁面現在5提供了默認MVC頭部佈局的登錄表單
雖然我知道如何包括部分頁面到我的佈局,我正在努力的一件事是模型。
如何添加模型到我的_Login視圖(駐留在_Layout中),但不是我的其他視圖?我需要在用戶登錄後切換它,因爲我不需要它。
如果登錄失敗後顯示某些模型錯誤,我該如何將用戶重定向到常規登錄頁面?
我想添加一個登錄表單到ASP.NET MVC的默認_layout頁面現在5提供了默認MVC頭部佈局的登錄表單
雖然我知道如何包括部分頁面到我的佈局,我正在努力的一件事是模型。
如何添加模型到我的_Login視圖(駐留在_Layout中),但不是我的其他視圖?我需要在用戶登錄後切換它,因爲我不需要它。
如果登錄失敗後顯示某些模型錯誤,我該如何將用戶重定向到常規登錄頁面?
這實際上很平凡。你只需要使用一個孩子的行爲。對於簡單的渲染基於模型的形式,所有你需要的東西就像在你AccountController
類:
[ChildActionOnly]
public ActionResult HeaderLogin()
{
var model = new LoginViewModel();
return PartialView("_Login", model);
}
然後,在你的佈局只是調用下面,你希望它出現:
@Html.Action("HeaderLogin", "Account)
唯一要記住的是,封裝您登錄字段的表單需要將其action
屬性設置爲常規登錄頁面的URL。然後,它自然會進入標準登錄過程,顯示錯誤的實際登錄頁面。
UPDATE:剛剛發現另一個答案,所以我的答案是一樣除了它:)
這是一個有點棘手解釋,但快報的分裂你的問題到子問題:
1)如何到redirrect使用這樣的事情:
var result = await mgr.PasswordSignInAsync(model.Login, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
ResetCaptchaCounter();
return RedirectToLocal(returnUrl);
case SignInStatus.LockedOut:
IncreaseCaptchaCounter();
ModelState.AddModelError("", "The account is locked, try again later.");
return View("Lockout");
case SignInStatus.RequiresVerification:
ResetCaptchaCounter();
return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false });
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Wrong login or password!");
IncreaseCaptchaCounter();
return View();
}
2)如何模型添加到_login視圖...
爲什麼不使用相同的型號?反正你的局部視圖和實際登錄視圖應該包含相同的輸入...
3)開關的局部視圖(登錄表單)顯示別的東西,當用戶登錄:
詢問是否有更多的東西ü要知道,或者如果你想在某些部分更詳細的解答。
你可以把局部視圖放到佈局頁面上。
@ Html.Partial( 「〜/查看/ UserControlls/BreadCrum.cshtml」)
,您還可以通過一些MODLE到局部視圖,以及類似物。
@ Html.Partial(「〜/ Views/UserControlls/BreadCrum。cshtml「,型號)
太棒了,沒有想到...這真的很平凡,幾分鐘後就可以接受你的答案:)謝謝! – SeToY