这个问题是关于最新的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)中的路由是如何工作的,我找不到任何有用的信息。
谢谢!
答案 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));
}