У меня есть частичное представление, называемое LogOn, где я в основном скопировал входные данные входа в элемент управления. Я использую Html.RenderPartial для размещения элемента управления в моем Index.Html внутри Ajax.BeginForm
<div id="login_ajaxtarget">
<% using (Ajax.BeginForm("Logon", "Account", new AjaxOptions { UpdateTargetId = "login_ajaxtarget", HttpMethod = "Post" })) { %>
<% Html.RenderPartial("LogOn"); %>
<% } %>
</div>
Я пытаюсь вернуть сообщения о проверке и показать их, но не могу заставить их работать. Я передаю модель представлению, но, похоже, она не отображает правильность проверки.
Мой контроллер
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");
}
}
Мой частичный взгляд
<%= 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>
Я пытаюсь использовать предложения из этой темы (http://forums.asp.net/p/1398814/3023892.aspx#3023892), но я не уверен, что это правильно. Все, что я действительно хочу, - это возможность разместить возможность входа в систему на домашней странице вместо того, чтобы переходить на новую страницу для ее использования. Если есть более простой способ сделать это, я весь слух! заранее спасибо.