MVC 重写 URL

MVC Rewriting URL

我有一个 Ajax 调用,为某些产品编写动态 Url。

$("#Scheda").html( '<a href="/Frutta_e_Verdura/SchedaProdotto?idProdotto=' + result.Idprodotto + '&nome=' + result.Title + '" target = "_blank" >Scopri di più sul prodotto >>></a>' );

结果link是:

Frutta_e_Verdura/SchedaProdotto?idProdotto=83&nome=anacardi

我想使用 routeconfig 将其转换为以下形式:

Frutta_e_Verdura/SchedaProdotto/anacardi

我正在尝试使用此路由配置:

routes.MapRoute( name: "prodotti", url: "frutta_e_verdura/schedaprodotto/{nome}/{idprodotto}", defaults: new { controller = "frutta_e_verdura", action = "Index", nome = UrlParameter.Optional ,idprodotto = UrlParameter.Optional } );

我该怎么做?

感谢大家的光临

路由用于将传入的 URL 映射到资源,而不是更改浏览器中的 URL。唯一的方法是使用 302 或 301 重定向。

但是,由于重定向 URL 将导致您的服务器向客户端发送响应,指示它向服务器执行 另一个 请求,这是不必要的网络往返。

您最好的选择是从您的 AJAX 调用中正确编写 URL 以匹配您定义的 prodotti 路由以避免这种不必要的重定向。

$("#Scheda").html( '<a href="/Frutta_e_Verdura/SchedaProdotto/' + result.Title + '/' + 
    result.Idprodotto + '" target = "_blank" >Scopri di più sul prodotto >>></a>' );