ASP.NET MVC 3 Razor: Как получить URL-адрес действия в строковой переменной Javascript? - PullRequest
24 голосов
/ 23 мая 2011
@(Html.ActionLink("Link Label", 
    "ActionMethodName", 
    "ControllerName", 
    null, // parameter object, then html object
    null))

производит

<a href="/ControllerName/ActionMethodName/">Link Label</a>

Если я хочу сослаться на /ControllerName/ActionMethodName/id в шаблоне JavaScript для ссылки Edit или New, как бы я присвоил это переменной JavaScript?

попытка:

<script type="text/javascript">
    var actionUrl = '@(Html.ActionLink("","ActionMethodName",
                                       "ControllerName",null,null))';
</script>

но на этом этапе мне пришлось бы использовать Javascript для удаления нежелательных <a href... символов в строке.

Ответы [ 2 ]

43 голосов
/ 23 мая 2011

@Url.Action("ActionMethodName", "ControllerName") сгенерирует путь.

10 голосов
/ 23 мая 2011
<script type="text/javascript">
    var actionUrl = @Html.Raw(Json.Encode(Url.Action("ActionMethodName", "ControllerName")));
</script>

или, если у вас уже есть эта actionLink где-то внутри страницы, вы можете использовать ее напрямую:

var actionUrl = $('#mylink').attr('href');

Просто предоставьте уникальный идентификатор, чтобы упростить выбор:

@(Html.ActionLink(
    "Link Label", 
    "ActionMethodName", 
    "ControllerName", 
    null,
    new { id = "mylink" })
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...