如何使用 javascript 在 .net 标签助手属性中设置值?

How to set value in .net tag helper attribute using javascript?

我正在尝试将从页面上的文本框读取的参数值设置为此 link:

<a asp-action="RetrieveEmailRecipients" asp-route-clientnumber="getClientNumber()">Retrieve Email Recipients</a>

我在页面底部的其他地方有 Javascript。但很遗憾,这不是将值传递给 MVC 操作方法的参数的正确方法。

ClientNumber 在操作中读取的参数是 asp-route-clientnumber 中的 string/value,在本例中该值为 getClientNumber()。

使用 javascript/jquery 在属性中设置值的正确方法是什么?

您正在将服务器端代码和客户端代码混合在一起

我假设你的 getClientNumber() 是一个 javascript 函数

Tag Helper javascript 进来之前生成,所以当服务器生成 html 时,它不知道什么 getClientNumber() 所以将被视为文字字符串

所以正确的做法是在客户数量可用时将 url 修改为 jquery

类似于:

  1. 给锚一个标识符 - 这样你就可以使用 jquery 轻松访问它并删除路由

    <a id="aRetriveEmail" asp-action="RetrieveEmailRecipients">Retrieve Email Recipients</a>
    
  2. 只要准备好 clientNumber,就修改锚点的属性以包含您的 clientNumber,或者使用 javascript 导航到它

    $(function(){
        $("#aRetriveEmail").click(function(){
            // example of how modifying href when client number ready
            // $(this).attr("href", $(this).attr("href") + "?clientnumber=" + getClientNumber());
    
            // or navigate to the url
            location.href = $(this).attr("href") + "?clientnumber=" + getClientNumber();
        })
    })