如何在使用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> 

如何在使用Javascript单击按钮时触发HTML helper

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>