【发布时间】:2016-06-17 21:26:49
【问题描述】:
我使用这样的导航:
<a href="/MyMessages/?messageId=1"> First message </>
但在导航用户之前,我会在 JavaScript 中处理事件:
$('a').on('click', function (event) {
event.preventDefault();
// Do stuff
// Navigate:
location.pathname = $(this).attr('href'); // href is /MyMessages/?messageId=1
});
但它在浏览器中被编码,地址是:
localhost:52500/MyMessages/%3FmessageId=1
mvc 路由失败:
“/”应用程序中的服务器错误。
从 客户(?)。
描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。
异常详细信息:System.Web.HttpException:潜在危险 从客户端检测到 Request.Path 值 (?)。
来源错误:
在执行过程中产生了一个未处理的异常 当前的网络请求。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈跟踪:
[HttpException (0x80004005): 有潜在危险的 Request.Path 从客户端检测到值 (?)。]
System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +9807692
System.Web.PipelineStepManager.ValidateHelper(HttpContext 上下文) +53
但是当我只是通过深层链接导航时
localhost:52500/MyMessages/?messageId=1
一切正常。
如何避免浏览器对我的 url 进行编码并防止出现错误?
【问题讨论】:
标签: javascript jquery asp.net asp.net-mvc url