c# - 如何使 Controller 名称连字符 "-"分隔?

标签 c# asp.net-mvc asp.net-mvc-4

我可以使用

[ActionName("My-Action-Name")]
public ActionResult MyActionName()
{
    return View();
}

但是我在更改 Controller 的名称时遇到了问题。 是否有一些注释可用于在 MVC 4 中分隔 Controller 名称连字符 (-)?

有点像这样:

[ControllerName("My-Controller-Name")]
public class MyControllerName : Controller
{

}

最佳答案

Here是一个很好的答案:

添加自定义路由处理程序(在替换部分选择您要如何处理连字符):

public class HyphenatedRouteHandler : MvcRouteHandler
{
    protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
        requestContext.RouteData.Values["controller"] = requestContext.RouteData.Values["controller"].ToString().Replace("-", "");
        requestContext.RouteData.Values["action"] = requestContext.RouteData.Values["action"].ToString().Replace("-", "");
        return base.GetHttpHandler(requestContext);
    }
}

并在您的 RouteConfig 中使用它

routes.Add(
        new Route("{controller}/{action}/{id}",
            new RouteValueDictionary(
                new { controller = "Home", action = "Index", id = UrlParameter.Optional }),
                new HyphenatedRouteHandler())
        );

关于c# - 如何使 Controller 名称连字符 "-"分隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26176087/

相关文章:

c# - 在c#中向数据表添加行

asp.net - 服务器端 Blazor 与 MVC

c# - ASP.NET MVC 5 中的路由可选参数

jquery - 验证失败时如何将文本框边框颜色设置为红色

css - Asp.Net MVC - CSS 相对路径与包

asp.net - ReactJS.NET - bundle - TinyIoCResolutionException : Unable to resolve type: React. IReactEnvironment

c# - 洋葱建筑

c# - HttpPost 未执行

c# - 在 powerpoint interop 中用颜色填充形状

c# - 在 asp.net-mvc 中从服务器读取文本文件的最佳方法是什么