Ich habe eine partielle Ansicht namens LogOn, wo ich im Grunde kopiert die Logon-Eingaben in ein Steuerelement. Ich verwende Html.RenderPartial, um das Steuerelement in meinem Index.Html innerhalb einer Ajax.BeginForm zu platzieren.
<div id="login_ajaxtarget">
<% using (Ajax.BeginForm("Logon", "Account", new AjaxOptions { UpdateTargetId = "login_ajaxtarget", HttpMethod = "Post" })) { %>
<% Html.RenderPartial("LogOn"); %>
<% } %>
</div>
Ich versuche, die Validierungsmeldungen zurückzugeben und anzeigen zu lassen, aber ich scheine es nicht hinzubekommen, zu funktionieren. Ich bin das Modell an die Ansicht übergeben, aber es scheint nicht, die Validierung richtig zu machen.
Mein Controller
public ActionResult LogOn(string userName, string password, bool rememberMe, string returnUrl)
{
if (!ValidateLogOn(userName, password))
{
return PartialView("LogOn", ModelState);
//return RedirectToAction("Index", "Home");
}
FormsAuth.SignIn(userName, rememberMe);
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
Meine Teilansicht
<%= Html.ValidationSummary("Login was unsuccessful. Please correct the errors and try again.") %>
<div>
<fieldset>
<legend>Account Information</legend>
<p>
<label for="username">Username:</label>
<%= Html.TextBox("username") %>
<%= Html.ValidationMessage("username") %>
</p>
<p>
<label for="password">Password:</label>
<%= Html.Password("password") %>
<%= Html.ValidationMessage("password") %>
</p>
<p>
<%= Html.CheckBox("rememberMe") %> <label class="inline" for="rememberMe">Remember me?</label>
</p>
<p>
<input type="submit" value="Log On" />
</p>
</fieldset>
</div>
Ich versuche, die Vorschläge aus diesem Thread zu nutzen ( http://forums.asp.net/p/1398814/3023892.aspx#3023892 ), aber ich bin nicht sicher, ob das richtig ist. Alles, was ich wirklich möchte, ist die Möglichkeit, die LogOn-Funktion auf der Startseite zu platzieren, anstatt zu einer neuen Seite navigieren zu müssen, um sie zu nutzen. Wenn es eine einfachere Möglichkeit gibt, dies zu tun, bin ich ganz Ohr! danke im Voraus.