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