路由:RedirectToAction(字符串操作)

时间:2016-03-11 12:51:29

标签: asp.net-mvc dotnetnuke

这个问题是关于最新的DNN平台版本:DNN 8.0.1。 我试图重定向到我的控制器类中的一个动作,但我无法做到。

例如以下检查:

// Check if user is voting on his own item if (item.CreatedByUserId == User.UserID) return RedirectToAction("Index");

这是控制器尝试返回操作时收到的错误。 DotNetNuke.Services.Exceptions.ModuleLoadException:路由表中的路由与提供的值不匹配。 ---> System.InvalidOperationException:路由表中的路由与提供的值不匹配。

我不知道DNN(MVC)中的路由是如何工作的,我找不到任何有用的信息。

谢谢!

1 个答案:

答案 0 :(得分:2)

DNN的路由与MVC不同,因为它必须解开不同的模块。您可以在控制器中创建一个方法,以这种方式覆盖默认方法:

    public new ActionResult RedirectToAction(string actionName, string controllerName, object routeValues)
    {
        var routeVals = TypeHelper.ObjectToDictionary(routeValues);
        routeVals["controller"] = controllerName;
        routeVals["action"] = actionName;
        return Redirect(ModuleRoutingProvider.Instance().GenerateUrl(routeVals, ModuleContext));
    }