我想通過ajax更新局部視圖,但它不起作用。看看這個模型類:部分視圖和ajax
public class LogOnModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
public bool IsLoggedIn { get; set; }
public string ReturnUrl { get; set; }
}
以下幾種觀點:
@model ITW2012Mobile.ViewModels.LogOnModel
<div id='LogOn' style="background-color: White;">
@using (Ajax.BeginForm("LogOnAjax", "Home", new AjaxOptions { UpdateTargetId = "LogOn", OnSuccess = "logInComplete" }))
{
ITW2012Mobile.ViewModels.LogOnModel m = Model;
@Html.EditorFor(model => model.IsLoggedIn)
@Html.EditorFor(model => model.ReturnUrl)
<div>
@Html.ValidationSummary()
</div>
<div>
@Html.LabelFor(model => model.UserName)
@Html.EditorFor(model => model.UserName)
</div>
<div>
@Html.LabelFor(model => model.Password)
@Html.EditorFor(model => model.Password)
</div>
<div>
<input type="submit" value="Login" />
</div>
}
</div>
與下列的控制器類:
public ActionResult LogOnAjax(LogOnModel model)
{
if (!User.Identity.IsAuthenticated)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
model.IsLoggedIn = true;
model.ReturnUrl = Url.Action("Index", "Home");
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return PartialView("PartialViewAjaxLogOn", model);
}
else
{
return PartialView("PartialViewLogOut");
}
}
即使用戶名/密碼是否正確,IsLoggedIn =真實RETURNURL !=空視圖顯示這些變量的空字段(但調試器顯示內部的值)。爲什麼以及如何使它正確?
注意你上面的評論'//如果我們得到了這麼多,失敗的東西,重新顯示的形式',然而,你沒有什麼可以在model.returnUrl之後停止處理,所以根據你上面的代碼註釋是不正確的 – 2012-01-17 00:24:09
沒有任何理解... – John 2012-01-17 00:33:33