c# - Response.Redirect 可以在 private void MVC 2 函数中工作吗?

标签 c# asp.net-mvc asp.net-mvc-2

我有一个用于某些验证的私有(private) 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");
    }
}

最佳答案

您可以在任何您喜欢的地方使用 Response.Redirect,但您需要提供一个正确的(相对的或绝对的)URL,而不仅仅是一个 Action 名称。但是,最好坚持 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;
}

关于c# - Response.Redirect 可以在 private void MVC 2 函数中工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2826887/

相关文章:

asp.net-mvc - 编辑器模板 LabelFor - 显示值而不是名称

c# - 作为另一个 Action 的结果返回 Action

asp.net-mvc - 用于 mvc 3 的 jquery ui 助手

c# - 多个添加的实体在 Entity Framework 中可能具有相同的主键

asp.net - 将ASP.NET MVC放入WebForms页面

c# - 具有空列表(零计数)的 OData 结果导致错误

c# - EPPlus 不下载带有模板的 Excel 文件

asp.net-mvc - Mvc3在IE7中默认授权过滤器属性

c# - "ResolveAssemblyReference"任务失败并出现 System.BadImageFormatException,但程序集未在任何地方使用!

C# - 序列化和反序列化静态成员