ログオンが成功した場合、ホームページを開くログオンコントローラにJavaScriptリダイレクトがあります:return JavaScript( "window.top.location = '" + returnUrl + " '; ")パーシャルビューからリダイレクト - 公開はできませんが、開発はOKです
私のログオンコントローラは、Ajax.BeginForm内のサムビットによって部分ビューとして呼び出されます。
開発中(私のvs2010でF5)私のソリューションは完璧だが、公開されたバージョン(サーバーにアップロードしたもの)は完全に新しいビューを再構築していない。代わりにtargetidのdivを更新している。
マイ一部コードの表示
@model Web.Models.LogOnModel
<div id="LogBox2">
@using (Ajax.BeginForm(new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "LogBox2", }))
{
<fieldset>...'All textbox capturing data here
<input type="submit" value="LogOn" />
</fieldset>
@Html.ValidationSummary(true, "Login was unsuccessful")
}
</div>
私のコントローラコード
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return JavaScript("location.href ='" + returnUrl + "';");
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
if (Request.IsAjaxRequest())
{
// If an ajax request was made return only the validation errors
// instead of the whole page
return PartialView("LogIn2");
}
else
{
return View();
}
}
私は本当にデバッグ(F5)はOKバリではない公開作品理由を理解しません。あなたは? 事前にお問い合わせ