从部分视图重定向 - 已发布不起作用,但开发是可以的
Redirect From Partial View - PUBLISHED not working but DEVELOPING is OK
我的登录控制器中有一个javascript重定向,如果登录成功,它会打开我的主页:返回JavaScript("window.top.location ='" + returnUrl + "';")
我的登录控制器由 Ajax.BeginForm 中的 sumbit 作为部分视图调用。
在开发(我的 vs5 上的 F2010)时,我的解决方案工作得很好,但我发布的版本(我上传到服务器的版本)并没有重新生成一个完整的新视图,而是刷新了我的目标 id 中的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) 工作正常 bur 已发布不。 你呢?提前感谢
不确定我是否完全理解您的情况。我认为您的生产正在正常工作;考虑以下场景:表单是通过 Ajax 提交的,并且 'returnUrl' 为 null/无效,然后div 'LogBox2' 将使用操作 'Home/Index' 行的响应进行更新return RedirectToAction("Index", "Home");
如果您的目的是在登录成功时将用户重定向到路径"returnUrl"或"home/index",那么一种解决方案可能是替换该行
return RedirectToAction("Index", "Home");
跟
return JavaScript("location.href =" + HttpUtility.JavaScriptStringEncode(Url.Action("Index", "Home"), true) + ";");
您也可以考虑将jQuery Ajax与 ASP.NET MVC一起使用。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- Jquery在生产和Heroku中不起作用,但在开发中运行良好
- 模态在IE9中不起作用 - 在打开开发人员工具时,它可以正常工作
- IE 开发人员工具断点不起作用
- 使用 PHP /MySQL JavaScript 创建一个简单的 Web 开发测试,但不起作用
- Sails JS - 显示闪存消息在 Heroku(生产)上不起作用,但在开发中工作正常
- AWS Javascript 开发工具包问题 - deleteObject 有效,但 deleteObject 不起作用
- 从部分视图重定向 - 已发布不起作用,但开发是可以的
- Gulp.watch-dosen;当我使用intellij思想进行开发时,它不起作用
- 为什么某些JS行为在开发中有效,但当我推送到Heroku时却不起作用