jquery脚本文件如何获取Asp.Net MVC 3的路由数据的ID值?

ca9*_*3d9 7 jquery asp.net-mvc-3

网址是http://localhost:52974/App/Detail/23432.我知道以下代码可以获取ID(23432),它可以在嵌入在cshtml文件中的javascript代码中使用.

@ViewContext.RouteData.Values["id"]
Run Code Online (Sandbox Code Playgroud)

但是,我有一个处理document.ready函数的外部jQuery脚本文件.以下方法不起作用,因为它不是cshtml文件.除了使用javascript解析URL之外,获取MVC路由ID值的最佳方法是什么?

$(document).ready(function () {
    var id = @ViewContext.RouteData.Values["id"];
Run Code Online (Sandbox Code Playgroud)

red*_*are 10

我将获得视图以呈现一个脚本标记,该标记将调用外部js中的init函数调用,并将id作为param传递.

视图:

<script>
   app.init('@ViewContext.RouteData.Values["id"]');
</script>
Run Code Online (Sandbox Code Playgroud)

外部js:

var app = {};

(function(app){

    var _id;

    app.init = function(id){
         _id = id;
    }

})(app);
Run Code Online (Sandbox Code Playgroud)


Jes*_*rud 7

您可以将值存储在视图中的隐藏输入字段中;

<input type="hidden" value='@ViewContext.RouteData.Values["id"]' id="routeDataId />
Run Code Online (Sandbox Code Playgroud)

然后在你的jQuery脚本中;

$(document).ready(function() {
    var id = $('#routeDataId').val();

    // The rest of your script
});
Run Code Online (Sandbox Code Playgroud)

然后你也可以从你的外部脚本访问ID :)