gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:07:23 25 4
gpt4 key购买 nike

我可以使用

[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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com