Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以将动态值添加到@Html.ActionLink参数_Javascript_C#_Jquery_Asp.net Mvc_Asp.net Mvc 5 - Fatal编程技术网

Javascript 是否可以将动态值添加到@Html.ActionLink参数

Javascript 是否可以将动态值添加到@Html.ActionLink参数,javascript,c#,jquery,asp.net-mvc,asp.net-mvc-5,Javascript,C#,Jquery,Asp.net Mvc,Asp.net Mvc 5,我的MVC控制器中有一个方法,当调用该方法时,它会下载一个文档 我有一个引导模式,href位于其中,指向此方法 @Html.ActionLink("Download", "Download", new { applicantId = 1, templateId = 1 }) 分钟的applicationId和templateId是硬编码的,但是这些值通过jquery作为文本值传递给model 是否可以动态获取HTML id并将其添加到@HTML.ActionLink 模态: <div i

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

我有一个引导模式,href位于其中,指向此方法

@Html.ActionLink("Download", "Download", new { applicantId = 1, templateId = 1 })
分钟的applicationId和templateId是硬编码的,但是这些值通过jquery作为文本值传递给model

是否可以动态获取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>

字母模板徽标
ActionLink(“下载”,“下载”,新的{applicationId=1,templateId=1})

如果您想从JQuery执行此操作,那么您可以将包含链接的li标记作为目标,或者像上面那样向您的操作链接添加一个类名,然后像平常一样更新对象的类

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





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


我已经创造了。NetFiddle。它起作用了

您可以使用
.replace()
方法更改
Html.ActionLink()
方法参数,您可以实现如下操作

//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>
参数1:
参数2:
@ActionLink(“下载”,“示例”,新的{applicationId=1,templateId=1})
更改操作链接
//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>

$(“#您的按钮”)。在(“单击”,函数(){
var param1=$(“#param1”).val();
var param2=$(“#param2”).val();
console.log(param1);
console.log(param2);
var link='@Html.ActionLink(“下载”,“示例”,
新的{applicationId=“\u applicationId”,templateId=“\u templateId”}”;
if(param1==“”| | param2==“”)
{
警报(“请填写所有参数输入”)
}
其他的
{
link=link.replace(“应用程序ID”,参数1);
link=link.replace(“模板ID”),参数2;
$(“.modal footer”).html(链接)
警报(“我已更改ActionLink。请单击下载链接”)
}
})

不太清楚你在这里问什么
@Html.ActionLink()
是razor代码,在将其发送到视图之前在服务器上进行解析,因此,如果要根据仅在客户端可用的数据更改生成的
href
属性,则需要javascript。而且不能使用ajax下载文件。您需要重定向到该方法。@StephenMuecke是的,在发布之后,我读到无法通过ajax实现这一点。我在问,我可以将传递到模式中的a值绑定到html.actionlink参数吗?您需要使用javascript/jquery来更改
href
属性。或者,取消默认操作并构建自己的url,然后使用
location.href
重定向和下载文件。(当您没有显示控制器方法或指示
applicationId
templateId
的值来自何处时,很难给出答案)这些值来自dropdownlist,因此如果我可以使用javascript更改属性,是否最好使用“a”标记而不是@html.actionlink?这没有区别(
@Html.ActionLink()
只是生成了一个
标记-最好使用
ActionLink()
,因为它可以确保你的url是正确的)谢谢,我最终做到了。我很喜欢你的解决方案。所以我会投票:)你的欢迎:如果这个解决方案对你的问题起作用,请考虑接受答案,帮助人们理解它已经被解决了:)实际上尝试了它,它只在模式中附加了链接作为文本。footer@Haris在你的模态页脚中只有一个动作链接是的只有一个,是的,在小提琴上工作一定是我在做什么对不起
$('#tabPond').addClass("greenTab");
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>
<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>