是否可以向@ Html.ActionLink参数添加动态值

时间:2017-06-22 20:23:04

标签: javascript c# jquery asp.net-mvc asp.net-mvc-5

我的MVC控制器中有一个方法,在调用时会下载一个文档。

我有一个bootstrap Modal,其中href所在的位置指向此方法。

@Html.ActionLink("Download", "Download", new { applicantId = 1, templateId = 1 })

该分钟的applicantId和templateId是硬编码的,但这些值通过jquery作为文本值传递给Modal。

是否可以动态获取HTML ID并将其添加到@ Html.ActionLink?

模态:

<div id="template1">
    <div class="modal fade" id="myModal1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <h3 id="app" style="display:none"></h3>
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h4 class="modal-title" id="myModalLabel">Letter Template Logo</h4>
                </div>
                <div class="modal-body">
                    <img style="background-size:cover;" src="~/Content/images/image.png" alt="" />
                </div>
                <div class="modal-footer">
                 ActionLink("Download", "Download", new { applicantId = 1, templateId = 1 })
                </div>
            </div>
        </div>
    </div>
</div>

2 个答案:

答案 0 :(得分:1)

我创建了.NetFiddle。它有效here

您可以使用Html.ActionLink()方法更改.replace()方法参数,您可以执行以下操作。

<强> // HTML

Parameter 1:<input id="param1" />
Parameter 2:<input id="param2" />

<div class="modal-footer">
    @Html.ActionLink("Download", "Example", new { applicantId = 1, templateId = 1 })
</div>

<button id="yourbutton">Change Action Link</button>

<强> // jquery的

<script type="text/javascript">         
$("#yourbutton").on("click",function(){

    var param1 = $("#param1").val();
    var param2 = $("#param2").val();
    console.log(param1);
    console.log(param2);

    var link = '@Html.ActionLink("Download", "Example", 
                    new { applicantId  = "_applicantId_",  templateId = "_templateId_"})';
    if(param1 == "" || param2 == "")
    {
        alert("please fill all parameter inputs")
    }
    else
    {
        link = link.replace('_applicantId_', param1);
        link = link.replace('_templateId_', param2);
        $(".modal-footer").html(link)
        alert("I have changed ActionLink. Please click the download link")

    }
})
</script>

答案 1 :(得分:0)

@Html.ActionLink("Pond", "Pond", "Home", htmlAttributes: new  { 
@class="classNameYouWantToAdd" })

@Html.ActionLink("Pond", "Pond", "Home", new  { 
@class="classNameYouWantToAdd" })

如果你想从JQuery那里做,那么你可以定位包含链接的li标签,或者像上面那样在你的动作链接中添加一个类名,然后像往常那样更新对象的类。

 $('.TargetedClassNameOfActionLink').addClass('addDifferentClass').removeClass('removeSomeOtherClass')





$('#liTagId').find('.ClassNameOfActionLink').addClass('addDifferentClass').removeClass('removeSomeOtherClass')

$('#tabPond').addClass("greenTab");
相关问题