为了建立这条路线相匹配的链接:
routes.MapRoute(
"CatalogFilter",
"{url}Catalog.aspx/{fltr}",
new { controller = "Catalog", action = "Index", page = 1 }
);
您需要指定所有存在于路线值路线。你有5个值:
- 控制器
- 行动
- 页
- 网址
- FLTR
所以,你需要提供所有5个值,以匹配从ActionLink
的路线。如果你想生成的URL /MotorOilCatalog.aspx/156
,你必须做出ActionLink
这样的:
@Html.ActionLink("my link", "Index", "Catalog", new { page = 1, fltr = 156, url = "MotorOil" }, null)
请注意,您有它的配置方式,从URL重写页码的唯一途径是将其添加到查询字符串。
/MotorOilCatalog.aspx/156?page=2
由于您的问题不清楚,我假设,当然,这是一个MVC应用程序,你必须在一个Index
方法您的应用程序Catalog
控制器。
public class CatalogController : Controller
public ActionResult Index(string url, int fltr, int page)
{
// Implementation
return View();
}
}
如果这其实就是一个ASP.NET应用程序,你应该使用MapPageRoute,而不是MapRoute
建立你的路线将它们映射到物理页,而不是控制器。
参考:https://msdn.microsoft.com/en-us/library/cc668177.aspx
你是不是想航线的URL到控制器,或ASP.NET页? – NightOwl888
@ NightOwl888,我正在尝试路由该网址。参数'fltr'总是为'null',链接与路由不匹配。 – mykhailovskyi