Response.Redirect 可以在私有 void MVC 2 函数中工作吗?
Posted
技术标签:
【中文标题】Response.Redirect 可以在私有 void MVC 2 函数中工作吗?【英文标题】:Can Response.Redirect work in a private void MVC 2 Function? 【发布时间】:2010-05-13 12:55:00 【问题描述】:我为某些验证设置了一个私有 void 函数。如果我的验证失败,我想重定向到另一个 ActionResult 并终止正在使用的 ActionResult 的进程。 Response.Redirect("controllerName") 没有帮助。有什么想法吗?
[Accept(HttpVerbs.Post)]
public ActionResult NerdDinner(string Name)
testName(Name);
...
Return RedirectToAction("ActionResultAAA");
private void testName(string name)
if(name == null)
//Response.Redirect("ActionResultBBB");
【问题讨论】:
【参考方案1】:您可以在任何您喜欢的地方使用 Response.Redirect,但您需要提供正确的(相对或绝对的)URL,而不仅仅是操作名称。但是,最好坚持 MVC 模式并执行以下操作:
[Accept(HttpVerbs.Post)]
public ActionResult NerdDinner(string Name)
ActionResult testResult = testName(Name)
if (testResult != null) return testResult;
...
return RedirectToAction("ActionResultAAA");
private ActionResult testName(string name)
if(name == null)
return RedirectToAction("ActionResultBBB");
return null;
【讨论】:
也就是说,你可以这样做,但不要这样做。 私有方法中,如果名称不为空,是否需要返回任何东西?以上是关于Response.Redirect 可以在私有 void MVC 2 函数中工作吗?的主要内容,如果未能解决你的问题,请参考以下文章
我可以在Response.Redirect中使用TempData吗?
Server.Transfer 和 Response.Redirect 用法区别