带有主题标签的MVC4路由

时间:2015-05-08 20:59:20

标签: asp.net-mvc asp.net-mvc-routing hashtag

我想在我的MVC应用程序中创建一个允许在URL中使用主题标签的路由。如果我要转到www.mydomain.com/#tag1,tag1的特定控制器必须处理该请求。如果我转到www.mydomain.com/#tag2,tag2的另一个控制器必须处理该请求。

这在MVC4中是否可行?

2 个答案:

答案 0 :(得分:0)

使用www.mydomain.com/ht#hashtag ||然后将ht定义为转发或委托控制器,找到正确的控制器来调用

答案 1 :(得分:0)

  

这在MVC中甚至可能吗?

这不是MVC的问题。 URL片段(带有#标签的URL)留给浏览器的作者来解释。许多浏览器不会将此信息传递回服务器,因此依赖它们进行路由在浏览器中并不可靠。

因此,简而言之,这可以通过MVC(customizing routing)实现,但除非您可以将客户端使用的浏览器限制为将片段信息传递到服务器端的浏览器,否则这是不切实际的。

RFC 2396第4.1节:

  

使用URI引用对其执行检索操作时      标识资源,可选的片段标识符,分隔      由交叉阴影线(“#”)字符组成的URI由附加组成      参考信息由用户代理解释后      检索行动已成功完成。因此,事实并非如此      URI的一部分,但通常与URI结合使用。

(强调补充)

通常,URL片段的使用仅限于客户端,因为这是所有主流浏览器唯一支持它们的地方。