MVC重定向到另一个Controller在不同的命名空间中,但是同一个项目

时间:2013-06-24 11:18:41

标签: c# asp.net-mvc

我的网站中有不同的控制器,其中一些位于WebSite / Controller文件夹中,一些位于网站/区域/测试/控制器中。

当我点击网站/控制器/主页/索引时,我想将用户重定向到带有查询字符串参数的网站/区域/测试/控制器/主页/索引。

这是我的第一个控制器

namespace mySite.Controllers
{
 public partial class HomeController : BaseFrontController
    {
     public virtual ActionResult Index()
        {          
            var issuburl = channelRepository.GetChannelByUrl('UserID');
            if (issuburl != null)
                return Redirect("~/Areas/Test/Controllers/Index");

            return View();
        }
    }
}

这是我的第二个控制器

namespace mySite.Areas.Test.Controllers
{
 public partial class HomeController : BaseTestController
    {
     public virtual ActionResult Index(string param)
        {          
            var chn = rep1.GetChannel(param);
            if (chn != null)
            {
                model.Chn = chn;
            }
            else return Redirect("~/Error/Index");      
            return View();
        }
    }
}

我的错误控制器在Mysite / Controller文件夹中,我可以在MySite / Area / Test / Controller中访问它,但是我如何访问里面的Mysite / Controller控制器 的MySite /地区/测试/控制器

以下代码无效

return Redirect("~/Areas/Test/Controllers/Index");

2 个答案:

答案 0 :(得分:4)

你试过吗?

 return RedirectToAction("Index", "controller", new { area = "Test" });

正在使用RedirectToAction

要指定不同的参数,您可以使用

return RedirectToAction("Index", "controller", new { area = "Test", yourParam1 = "param1", yourParam2 = "param2" });

答案 1 :(得分:1)

试试这个:

    return RedirectToAction("Index", "controller", new { area = "Test" });