asp.net mvc login-Formular im layout-Seite (Die teilweise Sicht auf 'LogIn' nicht gefunden wurde)
In Asp.net MVC-ich habe ein login-form oben auf allen Seiten (in der _Layout Seite) und ich habe meine login-Formular in eine PartialView als _Login in Freigegebenen Ordner wie diese:
@model MyProject.ViewModels.LogInModel
<div id="popover-head" class="hide">Login</div>
<div id="popover-content" class="hide">
@using (Ajax.BeginForm("LogIn", "Account", new AjaxOptions { UpdateTargetId = "login" }))
{
@Html.TextBoxFor(m => m.UserName, new { @class = "input-block-level", placeholder = "username" })
@Html.ValidationMessageFor(m => m.UserName)
@Html.PasswordFor(m => m.Password, new { @class = "input-block-level", placeholder = "password" })
@Html.ValidationMessageFor(m => m.Password)
<input type="submit" name="login" value="login" class="btn btn-primary" />
@Html.CheckBoxFor(m => m.RememberMe)
@Html.LabelFor(m => m.RememberMe)
}
</div>
und in meiner _Layout Seite:
<a id="popover" href="#" class="btn" data-toggle="popover" data-placement="bottom">Login</a>
<div id="login">
@Html.Partial("_LogIn")
</div>
und AccountController enthält:
[HttpPost]
public ActionResult LogIn(LogInModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (MembershipService.ValidateUser(model.UserName, model.Password))
{
FormsService.SignIn(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
return RedirectToAction("Index", "Home");
}
ModelState.AddModelError("", "login failed");
}
return PartialView(model);
}
Wenn ModelState ist nicht gültig ich bekomme diese Fehlermeldung im browser:
Dem partial view 'LogIn' nicht gefunden wurde oder keine Aussicht engine unterstützt die
gesuchte Orte
Was ist das problem mit dem Controller? Wie kann ich wieder nur _Login partialview in _Layout-Seite auf dieser Linie? :
return PartialView(model);
InformationsquelleAutor Azarsa | 2014-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
für die Rücksendung eine Teilansicht müssen Sie die Teilansicht Namen. Ihrer Ansicht haben Sie teilweise als _LogIn aber auf dem controller, lassen Sie es als Standard-es ist also auf der Suche für die Anmeldung. Versuchen Sie, Ihren controller zu
Ja, ich refenece es und in es Hinzugefügt wird in Bündel zu!
Ich habe nicht verwendet ajax.beginform vor, so dass nicht ganz sicher. Ich benutze immer einen ajax-Aufruf in der javascript. Nur raten Sie vielleicht versuchen Sie 'login' , '#login'. wenn das nicht funktioniert, betrachten Sie die Quelle auf Ihrer Seite und sehen, wo es gelegt wird, und hoffentlich werden Sie dort etwas sehen, dass wird helfen
Im Index, wenn ich auf die reichen, es geht um /Account/LogIn-Daten und übernimmt die volle der Seite mit meinem Teilansicht!
stackoverflow.com/questions/18773706/... hier ist eine Frage, die so ähnlich aussieht wie das, was Sie erleben. hoffentlich etwas, das hier helfen
InformationsquelleAutor Matt Bodily
u nennen müssen Ihre partielle Sicht als ur-Methode
und an den Controller
oder Sie nennen Sie anders, aber ur-Controller wird so sein
Danke es funktioniert, aber meine Teilansicht nimmt die volle Seite, obwohl ich Schreibe: UpdateTargetId = "login", warum?
hat u versucht
InsertionMode = InsertionMode.Replace
??? und auch prüfen, ur tags , die u haben kann<div>
nicht geschlossenInformationsquelleAutor YaraHanaa
Weil mein _Layout Seite hat nur ein Modell und ich möchte redirect auf die gleiche Seite wenn form eine Validierung erfordert, so habe ich diese Zeile in mein Controller:
anstatt PartialView als
return PartialView("_LogIn", model);
danke an alle.
InformationsquelleAutor Azarsa