微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery 1.7.1 – 由paranthese“(”在查询字符串中引起的语法错误

在MVC视图中,我通过ActionLink向查询字符串添加一个字符串值

<ul data-role="listview" data-inset="true">
  <li data-role="list-divider">Select Item</li>
  @foreach (var item in Model)
  {
    <li>@Html.ActionLinkitem.Name,"Create","Article",new { idItem = item.Id,name = item.Name },null)</li>
  }
</ul>

我正在使用jQueryMobile和jQuery.结果是一个插入列表:
http://jquerymobile.com/demos/1.1.0/docs/lists/lists-inset.html

在浏览器中单击链接时,我收到JScript运行时错误

Syntax error,unrecognized expression:
data-url=’/Article/Create?idItem=152&name=Semi%20Skimmed%20(Lowfat]’)

我试过了两个:

HttpUtility.UrlPathEncode(item.Name)
HttpUtility.UrlEncode(item.Name)

没有运气.

没有“(”或其名称中的任何其他特殊字符的元素都很好.在JScript错误中的”字符似乎指向序列化(json),但这并不成功.

数据库中的字符串是

“Semi Skimmed (Lowfat)”

并且不包含]’部分.

解决方法

一个愚蠢的工作是:

>将“(”和“)”替换为您确定将是唯一的(并且不会被urlEncode损坏)的特殊字符(或字符串),例如“~1~”和“~2~”.>在字符串上运行Server.urlEncode方法.>将“〜1~”(或其他)替换为“(”和“~2~”与“)”.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐