gpt4 book ai didi

asp.net-mvc-4 - MVC 4 : Custom Route

转载 作者:行者123 更新时间:2023-12-02 07:39:37 25 4
gpt4 key购买 nike

ASP.NET MVC 4 网站。

有一个名为“Locations”的数据库表,它只包含三个可能的位置(例如“CA”、“NY”、“AT”)默认路由是:

http://server/Location/  --- list of Locations
http://server/Location/NY --- details of NY-Location

如何在没有/Location/- 位的情况下创建自定义路线?(我觉得更好一点)

这样

http://server/NY - details of NY
http://server/AT - details of AT
.... etc...

http://server/Location  --- list of Locations

最佳答案

一种解决方案是使用路由约束来执行自定义路由:(顺序很重要)

routes.MapRoute(
name: "City",
url: "{city}",
constraints: new { city = @"\w{2}" },
defaults: new { controller = "Location", action = "Details", id = UrlParameter.Optional }
);

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

与匹配的 Controller :

public class LocationController : Controller
{
//
// GET: /Location/
public ActionResult Index()
{
return View();
}

//
// GET: /{city}
public ActionResult Details(string city)
{
return View(model:city);
}
}

如果你只想允许 NY、CA 和 AT,你可以这样写你的路由约束:

constraints: new { city = @"NY|CA|AT" }

(小写也可以)。另一种更通用的解决方案是实现您自己的 IRouteConstraint,而不是使用路由约束。 Selenium my previous answer .

关于asp.net-mvc-4 - MVC 4 : Custom Route,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12518388/

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