C# 有一种方法可以在执行ASP MVC 4的OnAction上重命名控制器?
我已经尝试创建一个url重写器根据当前的语言。例如,如果我有控制器文章,对于每种语言,我都有如下记录:C# 有一种方法可以在执行ASP MVC 4的OnAction上重命名控制器?,c#,asp.net,asp.net-mvc,url-rewriting,C#,Asp.net,Asp.net Mvc,Url Rewriting,我已经尝试创建一个url重写器根据当前的语言。例如,如果我有控制器文章,对于每种语言,我都有如下记录: public class ControllerRewriter { public LanguageName { get; set; } public NiceName { get; set; } public Controller { get; set; } } 还有我搜索的ControllerWriter列表 public class ControllerRewri
public class ControllerRewriter
{
public LanguageName { get; set; }
public NiceName { get; set; }
public Controller { get; set; }
}
还有我搜索的ControllerWriter列表
public class ControllerRewriterList: List<ControllerRewriter>
{
public string GetController(string niceName)
{
var cr = this.FirstOrDefault( c => c.NiceName == niceName);
if( cr == null )
return niceName;
else
return cr.Controller;
}
}
关于如何在OnActionExecuting或其他方法中重写控制器名称,您有什么想法/建议吗
更新:RedirectToRouteResult不是选项,因为它将更改当前url:-
谢谢,
Ovidiu你可以做如下事情
filterContext.Result = new RedirectToRouteResult(routeName, routeValues);
我认为你的计划是正确的。我记得很久以前,我用那个方法做了一个动作和控制器的切换。我会看看我是否能找到代码。是的,我知道那个解决方案,但那会重定向我。。。它会用丑陋的url更改当前的漂亮url,我不想要这个。
filterContext.Result = new RedirectToRouteResult(routeName, routeValues);