本文介绍了如何使控制器的名字连字符" - "分开吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我可以使用
[ActionName(我-行动-名称)]
公众的ActionResult MyActionName()
{
返回查看();
}
但我在改变控制器的名称面临的一个问题。
有一些注释可用,使控制器的名称连字符( - )?在MVC 4分离
有点这样的:
[ControllerName(我 - 控制器 - 名称)]
公共类MyControllerName:控制器
{}
解决方案
的是一个很好的ansver:
添加自定义路由处理程序(以取代部分选择你想怎么处理TA hyphenes):
公共类HyphenatedRouteHandler:MvcRouteHandler
{
保护覆盖的IHttpHandler GetHttpHandler(RequestContext的的RequestContext)
{
。requestContext.RouteData.Values [控制器] = requestContext.RouteData.Values [控制器]的ToString()更换( - ,);
。requestContext.RouteData.Values [行动] = requestContext.RouteData.Values [行动]的ToString()更换( - ,);
返回base.GetHttpHandler(RequestContext的);
}
}
和在使用你的 RouteConfig
routes.Add(
新干线({控制器} / {行动} / {ID}
新RouteValueDictionary(
新{控制器=家,行动=索引,ID = UrlParameter.Optional})
新HyphenatedRouteHandler())
);
I am able to use the
[ActionName("My-Action-Name")]
public ActionResult MyActionName()
{
return View();
}
But I am facing a problem in changing the controller's Name.Is there some annotation available to make controller name hyphen (-) separated in MVC 4?
Somewhat like this:
[ControllerName("My-Controller-Name")]
public class MyControllerName : Controller
{
}
解决方案
Here is a good ansver:
Add custom route handler (in replace part choose how you want ta handle hyphenes):
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);
}
}
and use it in your RouteConfig
routes.Add(
new Route("{controller}/{action}/{id}",
new RouteValueDictionary(
new { controller = "Home", action = "Index", id = UrlParameter.Optional }),
new HyphenatedRouteHandler())
);
这篇关于如何使控制器的名字连字符" - "分开吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!