web-dev-qa-db-ja.com

ASP.NET MVC 3 Razor:JavaScript文字列変数でアクションURLを取得する方法?

@(Html.ActionLink("Link Label", 
    "ActionMethodName", 
    "ControllerName", 
    null, // parameter object, then html object
    null))

作り出す

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

EditまたはNewリンクのJavaScriptテンプレートで/ControllerName/ActionMethodName/idを参照する場合、それをJavaScript変数にどのように割り当てますか?

試み:

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

しかし、その時点で、JavaScriptを使用して文字列内の不要な<a href...文字を削除する必要があります。

25
Zachary Scott

@Url.Action("ActionMethodName", "ControllerName")はパスを生成します。

45
Justin Soliz
<script type="text/javascript">
    var actionUrl = @Html.Raw(Json.Encode(Url.Action("ActionMethodName", "ControllerName")));
</script>

または、ページ内のどこかにすでにこのactionLinkがある場合は、直接使用できます。

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

選択を簡単にするために、一意のIDを必ず提供してください。

@(Html.ActionLink(
    "Link Label", 
    "ActionMethodName", 
    "ControllerName", 
    null,
    new { id = "mylink" })
)
10
Darin Dimitrov