【问题标题】:ASP.NET MVC 3 Razor: How to get Action URL in a Javascript string variable?ASP.NET MVC 3 Razor:如何在 Javascript 字符串变量中获取操作 URL?
【发布时间】:2011-05-23 04:49:56
【问题描述】:
@(Html.ActionLink("Link Label", 
    "ActionMethodName", 
    "ControllerName", 
    null, // parameter object, then html object
    null))

生产

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

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

尝试:

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

但到那时,我将不得不使用 Javascript 来删除字符串中不需要的 &lt;a href... 字符。

【问题讨论】:

    标签: javascript asp.net-mvc-3 razor


    【解决方案1】:

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

    【讨论】:

    • 如果有参数/数据对象怎么办?
    【解决方案2】:
    <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" })
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-20
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多