MVC Rewriting URL

本文关键字:URL Rewriting MVC | 更新日期: 2023-09-27 18:27:38

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

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

结果链接为:

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 } );

我该怎么做?

感谢大家提供

MVC Rewriting URL

路由用于将传入的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>' );