我在项目中使用以下路由
routes.MapRoute(
"ProductRoute", // Route name
"product/{id}/{title}", // URL with parameters
new { controller = "product", action = "Index", id = UrlParameter.Optional }, // Parameters defaults
new[] { "PriceCompare.Controllers" }
);
手头的问题是如何显示网址。可以通过以下任何方式访问URL:
一切都很好,因为所有这些网址都会重定向到所需的位置。但是,我认为很好的是即使有人使用第二种或第三种方法,浏览器中的返回URL也应显示第一个URI。
就像StackOverflow一样。例如,如果您访问以下网址
stackoverflow.com/questions/734249 / ,您的浏览器地址将在浏览器中显示完整的网址 stackoverflow.com/questions/734249/asp-net-mvc-url-routing-与-多路线值
如何实现这一目标?
答案 0 :(得分:2)
您可以实施自己的Route
或在您的操作中执行以下操作:
public ActionResult Index(int? id, string title = null)
{
if (String.IsNullOrWhiteSpace(title))
{
var product = // load product
return Redirect(Url.Action("Index", "Product",
new { id = id, title = product.Title }));
}
// your code
}