ASP.NET MVC 3 Razor:如何在Javascript字符串变量中获取Action URL?

Zac*_*ott 25 javascript razor asp.net-mvc-3

@(Html.ActionLink("Link Label", 
    "ActionMethodName", 
    "ControllerName", 
    null, // parameter object, then html object
    null))
Run Code Online (Sandbox Code Playgroud)

产生

<a href="/ControllerName/ActionMethodName/">Link Label</a>
Run Code Online (Sandbox Code Playgroud)

如果我想/ControllerName/ActionMethodName/id在JavaScript模板中引用EditNew链接,我将如何将其分配给JavaScript变量?

尝试:

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

但在那时,我将不得不使用Javascript删除<a href...字符串中不需要的字符.

Jus*_*liz 45

@Url.Action("ActionMethodName", "ControllerName") 将生成一个路径.

  • 如果有参数/数据对象怎么办? (3认同)

Dar*_*rov 10

<script type="text/javascript">
    var actionUrl = @Html.Raw(Json.Encode(Url.Action("ActionMethodName", "ControllerName")));
</script>
Run Code Online (Sandbox Code Playgroud)

或者如果您已在页面内的某个位置使用此actionLink,则可以直接使用它:

var actionUrl = $('#mylink').attr('href');
Run Code Online (Sandbox Code Playgroud)

只需确保提供唯一ID即可简化选择:

@(Html.ActionLink(
    "Link Label", 
    "ActionMethodName", 
    "ControllerName", 
    null,
    new { id = "mylink" })
)
Run Code Online (Sandbox Code Playgroud)