использование T4MVC в функции JS - PullRequest
4 голосов
/ 18 октября 2011

Возьмите следующий скрипт.Обратите внимание на строку «/ Home / Index».Используя T4MVC, есть ли способ указать это, чтобы избавиться от волшебной строки?

<script type="text/javascript">
    $(document).ready(function () {
        $dialog = $('#dialog');
        $dialog.dialog({
            autoOpen: false,
            buttons: { },
            open: function(event, ui) {
                $(this).load("/Home/Index");
           }
        });
    });
</script>

Ответы [ 3 ]

7 голосов
/ 18 октября 2011

Это если ваш взгляд использует Razor

@Url.Action(MVC.Home.Index())

Итак, ваш сценарий будет

<script type="text/javascript">
        $(document).ready(function () {
            $dialog = $('#dialog');
            $dialog.dialog({
                autoOpen: false,
                buttons: {},
                open: function (event, ui) {
                    $(this).load("@Url.Action(MVC.Home.Index())");
                }
            });
        });
</script>
3 голосов
/ 05 февраля 2012

Если ваш скрипт находится в отдельном файле .js (не в представлении Razor), вы можете использовать T4MvcJS для обработки этого случая.

Он будет выглядеть почти так же, какПример Скулда:

$(this).load(MvcActions.Home.Index());

, но это будет чистый Javascript.

(T4MvcJs сгенерирует js-помощник - очень похожий на T4MVC)

0 голосов
/ 18 октября 2011

сделать что-то вроде

$(this).load('<%:Url.Action("index","home") %>');
...