【发布时间】:2015-07-15 20:53:58
【问题描述】:
我在 MVC 应用程序中工作,我想让 url 更友好。我试图使用路由来做到这一点,但在某些 url 上它不起作用。
我想要一个像 http://localhost:55696/fr/Pages/Lists?pageType=PropertiesList&list=Market 这样的网址变成 http://localhost:55696/fr/(market_in_french)
我正在尝试
routes.MapRoute(
name: "MarketFr",
url: UrlStrings.ResourceManager.GetString("Market", new CultureInfo(CultureEnum.fr.ToString())),
defaults: new {controller = "Pages", action = "Lists"}
);
但结果是http://localhost:55696/fr/market?pageType=PropertiesList&list=Market
我该如何解决这个问题。 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 = "" }
);
现在它根本不起作用,我的网址就像开头一样:http://localhost:55696/en/Pages/Lists?pageType=PropertiesList&list=Market
如果我在地址栏中输入http://localhost:55696/fr/market,它会将我带到正确的页面,但是当我单击链接到
的按钮时Url.Action("Lists", "Pages", new { pageType = PageTypesEnum.PropertiesList, list = PropertyListViewMode.Market })
地址栏中的网址是http://localhost:55696/en/Pages/Lists?pageType=PropertiesList&list=Market
【问题讨论】:
标签: c# asp.net asp.net-mvc url-rewriting routing