我有这个在firefox中生成此错误的actionlink
<%: Ajax.ActionLink(" ", "SelectEditProduct", new { id = item.Id }, new AjaxOptions { UpdateTargetId = "dialog", InsertionMode = InsertionMode.Replace, OnSuccess = "$(\"#dialog\").dialog(\"open\");"}, new { Class="edit"})%>
它似乎来自我的小javascript片段。我逃过了报价,所以我很难过。
答案 0 :(得分:2)
我在这里看到的是你正在使用jQuery和Microsoft AJAX。这两个人没有理由混在同一个项目中,如果你已经有了jQuery,那么另一个完全没用。因此,不是用javascript污染你的标记,而是想知道如何使用斜杠转义单引号和双引号并获得大量错误,而不是不引人注意地(jQuery方式):
<%: Html.ActionLink(
"Some link text",
"SelectEditProduct",
new { id = item.Id },
new { @class = "edit" }
) %>
在单独的 js文件中:
$(function() {
$('a.edit').click(function() {
// When a link with class="edit" is clicked
// send an AJAX request to the href and replace the result
// of a DOM element with id="dialog" with the response
// returned by the server
// Also when the request completes show a jQuery dialog.
$('#dialog').load(this.href, function() {
$('#dialog').dialog('open');
});
return false;
});
});
答案 1 :(得分:1)
您必须将函数名称传递给OnSuccess
,您无法在AjaxOptions中编写函数。所以将代码更改为:
<%: Ajax.ActionLink(" ", "SelectEditProduct", new { id = item.Id }, new AjaxOptions { UpdateTargetId = "dialog", InsertionMode = InsertionMode.Replace, OnSuccess = "openDialog"}, new { Class="edit"})%>
然后编写相应的JavaScript函数:
openDialog = function() {
$("#dialog").dialog("open");
}