Bre*_*ogt 8 c# asp.net asp.net-mvc asp.net-mvc-4
我的路由无法正常工作.我定义了以下路线:
routes.MapRoute(
name: "CategoryDetails",
url: "{seoName}",
defaults: new { controller = "Category", action = "Details" }
);
routes.MapRoute(
name: "ContactUs",
url: "contact",
defaults: new { controller = "Home", action = "Contact" }
);
routes.MapRoute(
name: "AboutUs",
url: "about",
defaults: new { controller = "Home", action = "About" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
当我点击关于我们或联系我们的链接时,它会转到类别控制器中的详细操作方法.
这是关于我们的标记,请联系我们链接:
@Html.ActionLink("About", "About", "Home")
@Html.ActionLink("Contact", "Contact", "Home")
Run Code Online (Sandbox Code Playgroud)
我的类别控制器的详细操作方法:
public ActionResult Details(string seoName)
{
CategoryViewModel model = categoryTask.Details(seoName);
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
我的路线配置有什么问题?
Dan*_*.G. 32
将您的路线从最具体到特定的重新排序.这样,联系和约的路线将在seoName路线之前到达:
routes.MapRoute(
name: "ContactUs",
url: "contact",
defaults: new { controller = "Home", action = "Contact" }
);
routes.MapRoute(
name: "AboutUs",
url: "about",
defaults: new { controller = "Home", action = "About" }
);
routes.MapRoute(
name: "CategoryDetails",
url: "{seoName}",
defaults: new { controller = "Category", action = "Details" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
有了您的原始订单,这些网址~/contact并~/about总是由seoName途径处理.通过对它们进行重新排序,您可以确保它们通过正确的操作来处理,HomeController并且seoName路由将仅在联系后与URL匹配且路由无法匹配.
| 归档时间: |
|
| 查看次数: |
21723 次 |
| 最近记录: |