C# 菜单控制器上的.NET MVC路由重定向到特定控制器

C# 菜单控制器上的.NET MVC路由重定向到特定控制器,c#,asp.net,asp.net-mvc,routes,C#,Asp.net,Asp.net Mvc,Routes,我有以下问题: 当我单击视图上的菜单项按钮时,我到达MenuControllermethodRedirectAction: public ActionResult RedirectAction(string actionRedirect, int moduloAtual) { TempData["ModuloAtual"] = moduloAtual; var botaoVoltarSubMenu = Request["voltar"];

我有以下问题:

当我单击视图上的菜单项按钮时,我到达
MenuController
method
RedirectAction

public ActionResult RedirectAction(string actionRedirect, int moduloAtual)
    {
        TempData["ModuloAtual"] = moduloAtual;
        var botaoVoltarSubMenu = Request["voltar"];
        ViewBag.baseUsuario = Request["baseUsuario"];
        var redirect = string.Empty;

        if (botaoVoltarSubMenu == "1")
        {
            redirect = $"{Url.Content("~")}{actionRedirect}?baseUsuario={ViewBag.baseUsuario}";
        }
        else
        {

            redirect = $"{Url.Content("~")}{actionRedirect}";
        }

        return Redirect(redirect);
    }
我面临的是,在
返回重定向(Redirect)
之后,我浏览器上的URL显示了这一点(我的actionRedirect值是
Notas

http://localhost:40169/Menu/RedirectAction?actionRedirect=Notas&moduloAtual=40000
并且不会重定向到my/Notas控制器

这与RouteConfig有关吗

My RouteConfig.cs:

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{intID}",
            defaults: new { controller = "Home", action = "Index", intID = UrlParameter.Optional }
        );
    }
我做错了什么?我只想重定向到与我的
actionRedirect
参数名具有相同值的控制器


请,帮助!并提前感谢!

您确定要在代码中添加如此复杂的简单菜单重定向吗?听起来您只需要使用我们的“无操作”参数重定向到特定的控制器/操作


Redirect
方法不会重定向到控制器,而是重定向到URL字符串。
RedirectToAction
将允许您指定操作和控制器,但您似乎没有对指定的控制器执行实际操作

以下内容将重定向到
actionRedirect
参数中指定的控制器上的
Index
操作:

public ActionResult RedirectAction(字符串actionRedirect,int-moduleator)
{
TempData[“模块化”]=模块化;
var BOTAOVERTARSUBMENU=请求[“电压”];
ViewBag.baseUsuario=请求[“baseUsuario”];
如果(BOTAOVERTARSUBMENU==“1”)
{
返回RedirectToAction(“Index”,actionRedirect,new{baseUsario=ViewBag.baseUsario});
}
返回重定向操作(“索引”,重定向操作);
}
如果操作为
actionRedirect
,并且应始终使用
Notas
控制器,则更改为:

return RedirectToAction(redirectAction,“Notas”,new{baseUsario=ViewBag.baseUsario});
返回重定向操作(重定向操作,Notas);

实际上,我是这样得到这个系统的,这个方法已经实现了,但由于某种原因不起作用。这是我在菜单上的div,它调用controller方法:这是一个用数据库模块创建的动态菜单。因此,每次单击,我都有一个不同的对象和moduleId,传递给MenuController处理对我来说,然后重定向。@Rodrigassis这很有意义。请参阅我的更新答案,在您的实现中发现一个可能禁止访问您的操作的问题
<a href="@Url.Action("Index", "Notas", new { moduloAtual = 4000 })">Notas</a>
<div class="box-button text-center hvr-grow-shadow" onclick="window.location = '@Url.Action("RedirectAction", "Menu", new {actionRedirect = obj, moduloAtual = idModulo})'">