我有这样的路线:
http://localhost:1936/user/someOne/##feed%233dbfc1b3-44b4-42b4-9305-4822ac151527
我的路线配置如下:
routes.MapRoute("Profile", "user/{userName}/{treningId}",
new { controller = "Profile", action = "Index", userName = UrlParameter.Optional, treningId = UrlParameter.Optional }
);
然后在我的控制器中执行以下操作:
public ActionResult Index(string username, string treningId)
{
//more code here
}
但是我无法得到这一部分:
##feed%233dbfc1b3-44b4-42b4-9305-4822ac151527
,当我调试代码时,我看到treningId为null。我的问题是##之后如何获得URL的一部分?
最佳答案
你不能
浏览器在第一个#号之后根本不会将任何内容发送到服务器(您可以通过使用浏览器中的调试器检查浏览器与服务器之间的通信来验证此情况)。这是因为the # (hash) character carries special meaning in HTTP。
你为什么不只是
使用常规查询参数(例如http://localhost:1936/user/someOne?myparameter=feed%233dbfc1b3-44b4-42b4-9305-4822ac151527
之类的),或者
选择除“ ##”之外的另一个定界符。