嗨我在剃刀中有一个页面可以对信息进行排序,每当我需要对搜索进行一些更改时,我必须通过QueryString传递值,我有很多理由这样做。
现在我的网址看起来像这样:
https://localhost:44300/Reports/TitleSearch/SearchDirectTarade/DirectTradeExclusive?Input.SelectedMarket=DirectTradeExclusive&Input.SelectedProduct=131&Input.SelectedIssuer=&Input.SelectedOperation=C&Input.SelectedSubjacentGroup=&Input.SelectedSubjacent=US0028962076&Input.SelectedStrike=#
我希望看起来像这样:
https://localhost:44300/Reports/TitleSearch/SearchDirectTarade/DirectTradeExclusive
我还需要通过查询字符串传递所有这些参数,所以 有可能在MVC4 Razor页面中使我的URL更加用户友好吗?
答案 0 :(得分:0)
@Url.Action('MyAction', 'MyController',
new { Input.SelectedMarket = DirectTradeExclusive,
Input.SelectedProduct = 13 } )
答案 1 :(得分:0)
如果像你说的那样,“每当我需要对搜索进行一些更改时,我必须通过QueryString传递值”,那么你没有别的选择,只能在QueryString中传递它们。
如果您不想在URL中使用参数,则可以在更改搜索时使用POST,也可以在cookie或会话中设置它们。
答案 2 :(得分:0)
这里的主要问题是为什么你想让这个网址用户友好?
如果您的主要目标是允许用户稍后发送/存储此链接以模拟相同的请求,那么您已经解决了问题。在其他情况下,如果您想要让用户记住短网址,那么您必须减少搜索参数的数量,或者对搜索网址进行哈希处理(例如bit.ly)。
基本上,我可以考虑一些解决方案:
如果您不需要通过网址进行重复搜索:
如果您希望搜索具有重复性:
基本上,如果您没有有限数量的搜索选项而且没有必要的登陆页面(搞砸了SEO),那么获取搜索结果并将搜索参数放入查询字符串中是很常见的(谷歌是一个最着名的例子)
答案 3 :(得分:0)
你可以改变URL逻辑或patteren&默认值App_Start / Route_Config文件中的值
默认模式可以更改。