如何在ASP.NET Razor Pages中使用Tag Helper生成Onclick事件URL?
解决方案
你可以通过ASP.NET Core的Url.Page()辅助方法生成符合路由规则的URL,替代原硬编码方式,实现和asp-page、asp-route-*标签助手一致的URL生成逻辑,直接应用到onclick事件中:
方法一:直接使用Url.Page()生成URL
<label onclick="window.location='@Url.Page("Edit", new { editId = editId })'">edit</label>
说明:
Url.Page()第一个参数是目标页面名称(若页面在子文件夹中,需填写相对路径,比如"Manage/Edit")- 第二个参数是路由参数对象,其中
editId对应路由定义的参数名,值为你要传递的变量editId
方法二:借助隐藏标签的标签助手生成URL
如果更倾向于用asp-page和asp-route-*标签助手的写法,可先通过隐藏<a>标签生成URL,再在label的onclick中引用:
<a id="editAnchor" asp-page="Edit" asp-route-editId="@editId" style="display: none;"></a> <label onclick="window.location = document.getElementById('editAnchor').href">edit</label>
两种方式都能自动适配路由规则,避免手动拼接URL的错误,和标签助手的生成逻辑完全一致。
内容的提问来源于stack exchange,提问作者manish
相关产品推荐
相关产品推荐

