如何在html.actionlink中使用jquery函数结果作为参数

时间:2014-04-16 11:54:34

标签: javascript jquery asp.net-mvc razor

我有简单的@html.actionlink("action", "controller", new {id = somevalue})

和jquery函数

<script>
    function getValue() {
        var p = $("#EditId").val();
        return p;
    }
</script>

如何在actionlink中使用此函数的返回值而不是“somevalue

2 个答案:

答案 0 :(得分:3)

试试这个:

@html.actionlink("action", "controller", new {id = somevalue,@class="link"})

<script>
function getValue() {
    var p = $("#EditId").val();

    return p;
}
$(document).ready(function(){

 $(".link").attr('id')=getValue();
  });
   </script>

或者:

 $(".link").href.replace("somevalue", getValue());

答案 1 :(得分:0)

你所要做的事情是不可能的,因为你描述它是因为@Html.ActionLink是一个服务器端代码,并且当JS涉及@ Html.ActionLink完成它的工作时,呈现一个标记

此外,当您尝试更改元素的ID时,这也可能无法在以后访问(不确定)。

作为一种解决方法,您可以使用占位符来添加与JS功能的链接。请尝试以下并告诉我它是否正常工作

而不是@ Html.ActionLink使用下面的内容;​​

<div id="linkPlaceHolder"></div>

加载时使用以下

$(function(){
 var actionUrl = @Url.Action("action", controller); // you get the url of action

 $("#linkPlaceHolder").replaceWith("<a href='"+actionUrl+"' id='" + getValue() + "'>Text</a>")
});

这应该有用,如果没有或者不完全是你想要的,我们就在这里。