C# MVC中的Url重写
我在一个MVC应用程序中工作,我想让url更友好。我曾尝试使用路由来实现这一点,但在某些url上它不起作用 我希望像http://localhost:55696/fr/Pages/Lists?pageType=PropertiesList&list=Market这样的url在法语中变成http://localhost:55696/fr/Market 我在试着用C# MVC中的Url重写,c#,asp.net,asp.net-mvc,url-rewriting,routing,C#,Asp.net,Asp.net Mvc,Url Rewriting,Routing,我在一个MVC应用程序中工作,我想让url更友好。我曾尝试使用路由来实现这一点,但在某些url上它不起作用 我希望像http://localhost:55696/fr/Pages/Lists?pageType=PropertiesList&list=Market这样的url在法语中变成http://localhost:55696/fr/Market 我在试着用 routes.MapRoute( name: "MarketFr", url: UrlStrings.ResourceM
routes.MapRoute(
name: "MarketFr",
url: UrlStrings.ResourceManager.GetString("Market", new CultureInfo(CultureEnum.fr.ToString())),
defaults: new {controller = "Pages", action = "Lists"}
);
但结果是
我怎样才能解决这个问题。
Lists方法的定义如下:
public ActionResult Lists(string pageType, string list = "", string viewType = "")
我做了如下改变:
routes.MapRoute(
name: "MarketFr",
url: UrlStrings.ResourceManager.GetString("Market", new CultureInfo(CultureEnum.fr.ToString())),
defaults: new { controller = "Pages", action = "Lists", pageType = "PropertiesList", list = "Market", viewType = "" }
);
现在它根本不起作用了,我的url一开始就像:
如果我在地址栏中键入,它会将我转到右侧页面,但当我单击链接到
Url.Action("Lists", "Pages", new { pageType = PageTypesEnum.PropertiesList, list = PropertyListViewMode.Market })
在地址栏中,url是不清楚如何生成这样的url,因此假设类似url.Action的内容。对于特定情况,您必须指定所有默认值,以生成您喜欢的url:
url: "fr/market",
defaults: new {controller = "Pages", action = "Lists",
pageType="PropertiesList", list= "Market"}
您在该URL中有空格。空格字符为。 将url中的每个空格替换为%20:
http ://localhost:55696/fr/Pages/Lists?pageType=PropertiesList&list=Market%20to%20become%20http://localhost:55696/fr/(market_in_french)