路由: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));
}
此问题是关于最新的 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));
}