您好我的RedirectToAction没有重定向问题。我的代码成功点击了Redirect上的断点,因此我可以确认它正被调用。然而,似乎没有任何事情发生。
我曾尝试查看Chrome中的网络流量,似乎没有任何明显的东西。我一定错过了简单的事情!
//
// POST: /Blog/CreateBlog
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult CreateBlog(BlogViewModel model)
{
var userId = User.Identity.GetUserId();
model.UserId = userId;
if (ModelState.IsValid && model.UserId != null)
{
Mapper.CreateMap<BlogViewModel, Blog>();
if (_blogProcess.CreateBlog(Mapper.Map<BlogViewModel, Blog>(model)))
{
RedirectToAction("Index", "Blog");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
答案 0 :(得分:30)
尝试
return RedirectToAction("Index", "Blog");
答案 1 :(得分:3)
除了Nalaka526的答案之外:如果我们查看RedirectToAction
Controller
,我们可以看到它是return
类的实例方法,其中documentation为返回类型,派生自RedirectToRouteResult
,表示我们必须View
,就像我们返回PartialView
和{{1}}一样。
答案 2 :(得分:0)
如果您在视图页面上使用@using(Html.BeginForm(“Index”,“Blog”..),那么
public ActionResult CreateBlog(BlogViewModel model)
{
....
return RedirectToAction("Index", "Blog")
}
应该有用。
如果您使用的是Ajax.BeginForm
,则需要从javascript OnSuccess
事件重定向到新的操作/网址。
视图的示例代码
@using (Ajax.BeginForm("Index", "Blog", new AjaxOptions { HttpMethod = "post" , OnSuccess="RedirectFunction"}
function RedirectFunction(data)
{
window.location.href = “Index”;
}
希望这有帮助。