jQuery/ASP.Net MVC 将 id 变量传递给 content.load
jQuery/ASP.Net MVC passing id variable to content.load
这可能是一个相当简单的问题。
如何通过:
var ident = $(this).attr("id");
至
content.load("@Html.Raw(Url.Action("Action", "Controller", new {id=ident}))");
我试过:
... new {id="+ident+"}))");
但它不起作用。
解决方案
对于我的具体问题,我找到的最佳解决方案如下:
var ident = $(this).attr("id");
var route = "@Html.Raw(Url.Action("Action", "Controller"))";
var url = addParameterToURL(route, ident);
content.load(url);
使用方法:
function addParameterToURL(url, param) {
_url = url;
_url += (_url.split('/')[1] ? '/' : '/') + param;
return _url;
}
请感受这里服务器端代码和客户端代码的区别。这个:
var ident = $(this).attr("id");
是javascript,是在客户端页面执行的。虽然这样:
"@Html.Raw(Url.Action("Action", "Controller"))"
是服务器端代码,在页面到达客户端之前在服务器端执行。您根本不能将两者与连接之类的东西混在一起。
最简单的方法是将服务器端执行的结果存储到某个变量中,然后向其添加一个参数。像这样存储:
var url = "@Html.Raw(Url.Action("Action", "Controller"))";
然后,在JS中,给它加一个参数。例如使用 this function(只要确保将 url 作为参数,而不是使用当前位置)。
这可能是一个相当简单的问题。
如何通过:
var ident = $(this).attr("id");
至
content.load("@Html.Raw(Url.Action("Action", "Controller", new {id=ident}))");
我试过:
... new {id="+ident+"}))");
但它不起作用。
解决方案
对于我的具体问题,我找到的最佳解决方案如下:
var ident = $(this).attr("id");
var route = "@Html.Raw(Url.Action("Action", "Controller"))";
var url = addParameterToURL(route, ident);
content.load(url);
使用方法:
function addParameterToURL(url, param) {
_url = url;
_url += (_url.split('/')[1] ? '/' : '/') + param;
return _url;
}
请感受这里服务器端代码和客户端代码的区别。这个:
var ident = $(this).attr("id");
是javascript,是在客户端页面执行的。虽然这样:
"@Html.Raw(Url.Action("Action", "Controller"))"
是服务器端代码,在页面到达客户端之前在服务器端执行。您根本不能将两者与连接之类的东西混在一起。
最简单的方法是将服务器端执行的结果存储到某个变量中,然后向其添加一个参数。像这样存储:
var url = "@Html.Raw(Url.Action("Action", "Controller"))";
然后,在JS中,给它加一个参数。例如使用 this function(只要确保将 url 作为参数,而不是使用当前位置)。