jquery 1.7.1 - 括号中的语法错误“(”在查询字符串中

时间:2012-06-11 22:01:52

标签: jquery asp.net-mvc jquery-mobile query-string

在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运行时错误:

  

语法错误,无法识别的表达式:   数据-URL = '/条/创建idItem = 152安培;名称=半%20Skimmed%20(低脂]')

我试过了两个:

HttpUtility.UrlPathEncode(item.Name)
HttpUtility.UrlEncode(item.Name)
没有运气。

没有“(”或其名称中的任何其他特殊字符的元素正常。JScript错误中的''字符似乎指向不成功的序列化(json)。

数据库中的字符串是

  

“Semi Skimmed(Lowfat)”

并且不包含]'部分。

1 个答案:

答案 0 :(得分:2)

愚蠢的工作是:

  1. 替换&#34;(&#34;和&#34;)&#34;使用特殊字符(或字符串),您确定它是唯一的(并且不会被urlEncode损坏),例如&#34; ~1~&#34;和&#34; ~2~&#34;。
  2. 在字符串上运行Server.urlEncode方法。
  3. 替换&#34; ~1~&#34; (或其他)与&#34;(&#34;和&#34; ~2~&#34;与&#34;)&#34;。