在ASP.NET/IIS的URL中使用冒号(:)
我在ASP.NET MVC中实现一个自定义控制器,并且真的希望能够在URL中使用冒号,以便我可以识别类/列名称及其值,如下所示:
http://example.com/user:chaiguy …但显然ASP.NET或IIS不允许在URL中的冒号。我做了一些挖掘,显然它被认为是一个安全问题,但是我正在使用MVC并手动处理所有url路径(只是将它们视为字符串),而不是将它们与文件系统相关联,所以我很确定不适用。 我也听到一些关于实现一个自定义Http处理程序或某事的讨论。 任何想法或想法将不胜感激。
…
我碰巧喜欢网址,WCF对我来说太复杂了。我希望它与url兼容,就像REST一样,但不仅仅是导航层次结构,还是做了很好的布局。与/ users / chaiguy有关的问题是解释层次结构是没有的:在我的系统中,“user”是一个类,它不是一个文件夹。用户:chaiguy是指具有“chaiguy”值的用户类的实例,它是具有子实体的潜力的单个实体。所以例如: /用户:chaiguy /名称 …我想显示该实体的名称。如果我用你的方法做到这一点,它将如下所示: /用户/ chaiguy /名称 问题是你如何知道课堂是什么,有什么价值?它可以解释为 /用户/ chaiguy:名称 在我的系统中,这没有意义。看看我在做什么为了给出一个稍微复杂的例子,假设我们要从多个实例中选择一个用户实体的子节点。所以用户可能有几个电子邮件地址。要选择一个,我们可以使用: /user:chaiguy/email:me@here.com/ 所以它实际上是递归的。它不是一个文件路径,它更像是一个XPath(或者可能类似于jQuery,基于我知道的几点)。也就是说,它比动态评估的查询选择多于硬连线的文件路径。它在服务器上进行评估。 不要错,我不是在这里建立一个典型的网站,甚至是网络服务。 解决方法
更改web.config中httpRuntime的requestPathInvalidCharacters属性:
<httpRuntime maxRequestLength="20480" requestValidationMode="2.0" requestPathInvalidCharacters="" maxQueryStringLength="20480" /> 而ASP.NET应该不再阻止请求路径中的冒号。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何创建数据库并在安装过程中填充它
- asp.net-mvc – 在发送到视图之前如何修改控制器动作中的表
- asp.net-mvc – 同步ASP.NET MVC回发回调的问题
- asp.net-mvc – 在另一个文件夹中捆绑的Javascript
- asp.net – WebControl vs HtmlControl. Cos和专业人士在We
- asp.net – MS Web部署跳过删除规则不跳过
- asp.net – 可以从外部xml文件读取web.config吗?
- asp.net – 通过调用.ashx页面下载文件
- asp.net-mvc-3 – asp.net mvc 3中的自定义错误页面
- asp.net-mvc – ASP.NET MVC现在是“开源”.这是一件好事吗