【发布时间】:2019-09-28 19:06:01
【问题描述】:
我有以下路线
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("Hotel", "en/hotels/{*hotelName}",
new { controller = "Hotel", action = "index" });
}
所以下面的URL被路由
www.mydomain.com/en/hotels/my-hotel-name/
www.mydomain.com/en/hotels/myhotelname/
www.mydomain.com/en/hotels/my_hotel_name/
在我的控制器中,我有一个条件检查以查看传递的 URL 是否存在于我的查找表中。例如
public class HotelController : Controller
{
[HttpGet]
[ActionName("Index")]
public ActionResult IndexGet(string hotelFolder)
{
if(CheckIfFolderExists(hotelFolder))
{
return Content("Hotel URL Found");
}
else
{
**//Here, I want to return the actual requested URL as it didn't exist in my lookup table
}
}
}
路由是根据 en/hotels 路径工作的,如果像下面这样输入了错误的 URL,则正常返回实际的 URL。
www.mydomain.com/en/attractions/my-attraction-name/
基本上,我想建立一个我想要路由的 URL 字典,如果字典中不存在请求的 URL,我想返回请求的 URL,无论是 .HTM、.HTML 还是.ASP 页面。
【问题讨论】:
-
请问您还在寻找答案吗?
-
您是否希望将所有“景点”网址重定向到特定页面?另外,我不确定“景点”网址与您的“酒店”网址和路线有何关系。
-
是的,我仍在寻找答案@stom
-
如果到达此代码,请求的 url 必须像 /en/hotels/ 所以我不明白你可以重定向到哪里,url 永远不会是什么就像 /en/attractions/ 在这一点上。
标签: c# .net asp.net-mvc routing routes