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~”与“)”.

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...