0

这可能是一个相当简单的问题。

我如何通过:

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;
}
4

1 回答 1

0

请感受一下服务器端代码和客户端代码之间的区别。这个:

var ident = $(this).attr("id");

是javascript,它在客户端的页面上执行。虽然这样:

"@Html.Raw(Url.Action("Action", "Controller"))"

是服务器端代码,在页面到达客户端之前在服务器端执行。您根本不能将两者与连接之类的东西混合在一起。

最简单的方法是将服务器端执行的结果存储到某个变量中,然后向其中添加一个参数。像这样存储它:

var url = "@Html.Raw(Url.Action("Action", "Controller"))";

然后,在 JS 中,为其添加一个参数。例如使用此功能(只需确保将 url 作为参数,而不是使用当前位置)。

于 2015-11-19T11:10:23.720 回答