如何在使用Javascript单击按钮时触发HTML helper
本文关键字:HTML helper 按钮 单击 Javascript | 更新日期: 2023-09-27 18:16:56
我想把JS函数的值发送到HTML Helper.
换句话说,在单击按钮时触发此帮助器。
function ButtonClick(x) {
@Html.loadSubMenu(4);
}
<a class="Tab" href=@item.NavigateUrl>
<img src="~/Content/images/b1.png" id="b1"
onclick="return ButtonClick(1); bb1();" onmouseover="
bigImg(this)" onmouseout=" normalImg(this)"> </a>
Html Helper是一段c#代码,它将在服务器上运行并在页面内呈现Html。导致HTML内部页面无法在服务器上运行c#代码的事件。
但等等,…
你可以在ActionResult上随时发出ajax请求。
所以你可以在JS中像这样调用函数,它将从服务器加载子菜单。
function Test(){
//call the code here that will fetch html form server.
}
简短的回答:你不能做你想做的事。
长答:
asp, mvc和razor代码都在服务器上运行。在服务器上运行后,它被转换成HTML流,然后传递给客户端。
此时,服务器端代码不再运行。它不再可用。浏览器对此一无所知。
你唯一能做的就是运行一些用JavaScript编写的客户端代码。当我看你的代码并试图猜测意图时,我相信你试图在用户单击导航按钮时提供一组额外的按钮。
一种可能的选择是继续使用razor创建按钮,但将它们像这样包裹起来:
// Example code -- Not meant for actual production
<div style="display:none" id="extra-nav">
@Html.loadSubMenu(4);
</div>
<img src="~/Content/images/b1.png" id="b1"
onclick="handleNavClick" onmouseover="
bigImg(this)" onmouseout=" normalImg(this)"> </a>
<script>
function handleNavClick() {
document.getElementById("extra-nav").style.display = "block";
}
</script>