[英]Building HTML and appending using jQuery
我遇到了如下情况:
$(document).ready(function () {
var param1 = "A";
var param2 = "B";
var param3 = "C";
$("ul#SomeUL").append('<li><%: Ajax.ActionLink("Click Me", "SomeAction", new { param1 = "' + param1 + '", param2 = "' + param2 + '", param3 = "' + param3 + '" }, new AjaxOptions() { OnSuccess = "onSuccess" }, new { Class = "ABC" } ) %></li>');
现在的问题是,不是每个 param# 变量的值被“插入”......变量名本身(例如 param1)被“插入”......换句话说,发布到 controller 操作的 routeValues 是param1、param2 和 param3 而不是 A、B 和 C...有谁知道为什么会发生这种情况以及如何解决?
感谢:D
ActionLink 在这种情况下是无用的,因为它们是服务器端代码。 您不能将它们与客户端 javascript 变量混合使用。 下面是我的做法(包含 jQuery 的全部功能):
$(function () {
var param1 = 'A';
var param2 = 'B';
var param3 = 'C';
$('ul#SomeUL').append(
$('<li/>', {
html: $('<a/>', {
href: '<%= Url.Action("SomeAction") %>',
text: 'Click Me',
class: 'abc',
click: function() {
var params = {
param1: param1,
param2: param2,
param3: param3
};
$.get(this.href, params, function(result) {
onSuccess();
});
return false;
}
})
})
);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.