我有一个名为LogOn的局部视图,其中我基本上将登录输入复制到控件中。我使用Html.RenderPartial放置在我的index.html控制的Ajax.BeginFormASP.NET MVC +模型状态和局部视图
<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),但林不知道这是否是正确的。我真正想要的是能够将LogOn功能放置在主页上,而不必导航到新页面才能使用它。如果有一个更简单的方法来做到这一点,我所有的耳朵!提前致谢。
对不起,我添加的代码是我迄今为止改变的代码。我已经实现了ValidateLogOn方法(或者更具体地说,它已经为我实现了)。我只是试图改变开始一个新的MVC项目时提供的开箱即用的网站模板。我的问题是,一旦错误被添加到模型中,它们就不会出现在我的页面的验证消息中。 – jimbo 2009-10-13 12:57:33