Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
获得;id";传递给控制器到javascript_Javascript_Jquery_Regex_Asp.net Mvc 4 - Fatal编程技术网

获得;id";传递给控制器到javascript

获得;id";传递给控制器到javascript,javascript,jquery,regex,asp.net-mvc-4,Javascript,Jquery,Regex,Asp.net Mvc 4,我有一个ASP.NET MVC4应用程序,它使用jQuery对同一项目中的WebApi控制器进行一些调用。将ID传递给控制器时,/MyController/123应在加载页面时显示不同的数据。问题是我不知道如何将该ID传递给jQuery。它本身不是查询字符串参数,因此不起作用。我想要的是URL中的“123”。除了切碎URL,还有一种通用/标准的方法吗?您可以将其放入控制器中的ViewBag对象ViewBag.PassedId=Id中,然后在前端使用razor或任何视图引擎方法将其放入javasc

我有一个ASP.NET MVC4应用程序,它使用jQuery对同一项目中的WebApi控制器进行一些调用。将ID传递给控制器时,
/MyController/123
应在加载页面时显示不同的数据。问题是我不知道如何将该ID传递给jQuery。它本身不是查询字符串参数,因此不起作用。我想要的是URL中的“123”。除了切碎URL,还有一种通用/标准的方法吗?

您可以将其放入控制器中的ViewBag对象ViewBag.PassedId=Id中,然后在前端使用razor或任何视图引擎方法将其放入javascript变量中

<script>
var id = @(ViewBag.PassedId);
</script>

变量id=@(ViewBag.PassedId);

或者,您可以将其附加到隐藏的表单元素,并在那里获取值。但是您需要绑定一个对象模型以从控制器传递。

您可以将其放入控制器中的ViewBag对象中,ViewBag.PassedId=Id,然后在前端使用razor或任何视图引擎方法将其放入javascript变量中

<script>
var id = @(ViewBag.PassedId);
</script>

变量id=@(ViewBag.PassedId);

或者,您可以将其附加到隐藏的表单元素,并在那里获取值。但是您需要绑定一个对象模型以从控制器传递。

我更新了Jeromy在我的一个项目中链接到的问题中的一个答案:

(function ($) {
    //http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values
    //usage $.QueryString["param"]
    $.QueryString = (function (a) {
        if (a == "") return {};
        var b = {};
        for (var i = 0; i < a.length; ++i) {
            var p = a[i].split('=');
            if (p.length != 2) continue;
            b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
        }
        return b;
    })(window.location.search.substr(1).split('&'));

    $.mvcId = (function (a.toLowerCase()) {
        //usage $.mvcId("Bar"); /Foo/Bar/162 (Gets 162)
        var b = location.href.toLowerCase();
        var c;
        if (a != "") {
            a += "/";
            c = b.lastIndexOf(a);
            if (~c) { // ~ = truthy http://stackoverflow.com/questions/1789945/javascript-string-contains
                b = b.substring(c, b.length);
            }
            else {
                throw "didn't match querystring";
            }
        }
        c = b.lastIndexOf("/");
        var id = b.substring(c + 1, b.length);
            return id;
    });
})(jQuery);

返回
123

我更新了Jeromy在我的一个项目中链接到的问题中的一个答案:

(function ($) {
    //http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values
    //usage $.QueryString["param"]
    $.QueryString = (function (a) {
        if (a == "") return {};
        var b = {};
        for (var i = 0; i < a.length; ++i) {
            var p = a[i].split('=');
            if (p.length != 2) continue;
            b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
        }
        return b;
    })(window.location.search.substr(1).split('&'));

    $.mvcId = (function (a.toLowerCase()) {
        //usage $.mvcId("Bar"); /Foo/Bar/162 (Gets 162)
        var b = location.href.toLowerCase();
        var c;
        if (a != "") {
            a += "/";
            c = b.lastIndexOf(a);
            if (~c) { // ~ = truthy http://stackoverflow.com/questions/1789945/javascript-string-contains
                b = b.substring(c, b.length);
            }
            else {
                throw "didn't match querystring";
            }
        }
        c = b.lastIndexOf("/");
        var id = b.substring(c + 1, b.length);
            return id;
    });
})(jQuery);

它返回
123

如果对正则表达式进行调整,我认为会起作用。如果对正则表达式进行调整,我认为会起作用。这正是我想要的!我从未想过将Razor代码与Javascript混合使用。谢谢这正是我要找的!我从未想过将Razor代码与Javascript混合使用。谢谢