javascript - 如何使用 javascript 设置 .net 标记帮助程序属性中的值?

标签 javascript c# jquery asp.net-core-tag-helpers

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

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

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

实际读取的参数 ClientNumber 是 asp-route-clientnumber 中的字符串/值,在本例中,该值是 getClientNumber()。

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

最佳答案

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

我假设您的 getClientNumber() 是一个 JavaScript 函数

Tag Helper 是在 javascript 进入之前生成的,因此当服务器生成 html 时,它不知道 getClientNumber() 是什么 是这样将被视为文字字符串

所以正确的方法是当客户端号码可用时使用 jquery 修改 url

类似于:

  1. 为 anchor 提供一个标识符 - 这样您就可以使用 jquery 轻松访问它并删除路线

    <a id="aRetriveEmail" asp-action="RetrieveEmailRecipients">Retrieve Email Recipients</a>
    
  2. 每当您准备好 clientNumber 时,修改 anchor 的属性以包含您的 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();
        })
    })
    

关于javascript - 如何使用 javascript 设置 .net 标记帮助程序属性中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48937147/

相关文章:

javascript - REST 中未定义 jQuery Ajax 对象点符号

javascript - HTTP 请求超时和内容下载时间

用于 Asp.Net 的 C# 嵌入式 Web 服务器

javascript - 使用Jquery控制表宽度问题

javascript - OnClick 在 Ios11 上不起作用

javascript - Twitter 提前输入 : undefined

javascript - React Native Flatlist 不重新渲染 Redux

c# - Asp.net 表单例份验证 Web 服务

c# - 是否可以使用 String.Split 或正则表达式将字符串拆分为字符串数组并删除不在分隔符之间的部分?

jquery - 手动触发jquery keyup?