路由:RedirectToAction(字符串操作)

Routing: RedirectToAction(string action)

此问题是关于最新的 DNN 平台版本:DNN 8.0.1。 我正在尝试重定向到我的控制器中的一个操作 -类,但我做不到。

例如下面的检查:

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

这是我在控制器尝试 return 一个动作时收到的错误。 DotNetNuke.Services.Exceptions.ModuleLoadException:路由 table 中没有路由与提供的值匹配。 ---> System.InvalidOperationException:路由 table 中没有路由与提供的值匹配。

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

谢谢!

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));
    }