Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery/ASP.Net MVC将id变量传递给content.load_Jquery_Asp.net_Asp.net Mvc_Url.action - Fatal编程技术网

jQuery/ASP.Net MVC将id变量传递给content.load

jQuery/ASP.Net MVC将id变量传递给content.load,jquery,asp.net,asp.net-mvc,url.action,Jquery,Asp.net,Asp.net Mvc,Url.action,这可能是一个相当简单的问题 我如何通过: var ident=$(this.attr(“id”) 到 content.load(@Html.Raw(Url.Action(“Action”,“Controller”,new{id=ident})) 我试过: 。。。新建{id=“+ident+”}));但它不起作用 解决方案 对于我的具体问题,我找到的最佳解决方案如下: var ident = $(this).attr("id"); var route = "@Html

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

我如何通过:

var ident=$(this.attr(“id”)

content.load(@Html.Raw(Url.Action(“Action”,“Controller”,new{id=ident}))

我试过:

。。。新建{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中,向其添加一个参数.

我需要将id传递给控制器中的action方法以获得正确的结果。如果我可以指定字符串文本
action
controller
是否真的无法传递参数?is
“@Html.Raw(Url.action(“action”,“controller”,new{id=ident}))“
基本上不是字符串?或者是否有更好的方法调用控制器的方法,以便将部分视图呈现给引导模式?我建议的方法将id传递给控制器。它只会给你这样一个URL:
/Controller/Action?id=123
,这正是你需要将123作为id传递给Action的地方。@LeighCooper,不是,因为Razor识别它,并在呈现视图时将其呈现为正确的URL字符串。谢谢,我会尝试一下。