我正在尝试将从页面上的文本框读取的参数值设置为此链接:
<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
类似于:
为 anchor 提供一个标识符 - 这样您就可以使用 jquery 轻松访问它并删除路线
<a id="aRetriveEmail" asp-action="RetrieveEmailRecipients">Retrieve Email Recipients</a>
每当您准备好 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/