Ker*_*ber 5 c# routes asp.net-mvc-routing attributerouting asp.net-mvc-5
我正在使用mvc5在Azure上开发一个网站.我使用属性路由,在控制器上使用路由和路由前缀.我用action.link助手打电话.我没有说出我的路线.
我在route.config上做了以下事情:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.LowercaseUrls = true;
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
我的控制器就像:
[OutputCache(Duration = 600, Location = System.Web.UI.OutputCacheLocation.Client)]
[RoutePrefix("istanbul/kadikoy")]
[Route("{action=index}")]
public class KadikoyController : Controller
{
public ActionResult Index()
{
return View();
}
[Route("kadikoy-tarihi")]
public ActionResult KadikoyTarihi()
Run Code Online (Sandbox Code Playgroud)
我的服务器响应时间非常差,即9.6秒
如果我注释掉属性路由代码,使用默认路由,我有2.1秒的服务器响应时间.
谢谢您的回复.
事实证明,此操作真正昂贵的部分不是映射您的属性路由,而是在此之前 MVC 需要创建 ControllerFactory 并检索所有 Controller 类型。在我的项目中,该过程占用了 1245 毫秒,而 MapMvcAttributeRoutes() 函数的其余部分大约需要 45 毫秒。我的猜测是,如果您不使用属性路由,则会根据需要找到控制器,而不是一次性找到所有控制器。
| 归档时间: |
|
| 查看次数: |
949 次 |
| 最近记录: |