Как файл сценария jquery получает значение идентификатора данных маршрута Asp.Net MVC 3? - PullRequest
7 голосов
/ 12 июля 2011

URL-адрес http://localhost:52974/App/Detail/23432. Я знаю, что следующий код может получить идентификатор ( 23432 ), и его можно использовать в коде JavaScript, встроенном в файл cshtml.

@ViewContext.RouteData.Values["id"]

Однако у меня есть внешний файл сценария jQuery, который обрабатывает функцию document.ready. Следующий подход не будет работать, потому что это не файл cshtml. Каков наилучший подход для получения значения идентификатора маршрута MVC, кроме использования javascript для анализа URL-адреса?

$(document).ready(function () {
    var id = @ViewContext.RouteData.Values["id"];

Ответы [ 3 ]

10 голосов
/ 12 июля 2011

Я бы получил представление для вывода тега сценария, который будет вызывать вызов функции init во внешнем js, передавая идентификатор в качестве параметра.

вид:

<script>
   app.init('@ViewContext.RouteData.Values["id"]');
</script>

внешний JS:

var app = {};

(function(app){

    var _id;

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

})(app);
7 голосов
/ 12 июля 2011

Вы можете сохранить значение в скрытом поле ввода в вашем представлении;

<input type="hidden" value='@ViewContext.RouteData.Values["id"]' id="routeDataId />

и затем в вашем скрипте jQuery;

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

    // The rest of your script
});

Тогда у вас будет доступ к идентификатору из вашего внешнего скрипта:)

0 голосов
/ 16 мая 2017
var id = @HttpContext.Current.Request.RequestContext.RouteData.Values["ID"].ToString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...