剃刀在按下按钮时调用功能

我想在按下按钮时将跨度的文本更改为文本框值。我做了这段代码,但是没有用。似乎Name的值已更改,但未更改span值。 我怎样才能做到这一点?

@{
   string name = "";
   string Name = "";
   void ok()
   {
       Name = name;
   }
}
<input type="Text" value="@name"/>
<button onclick="@{ok();}">OK</button>
<span>@Name</span>
评论
  • enemo
    enemo 回复

    您需要了解客户端和服务器端代码之间的区别。您将需要为其定义一个javascript函数:

    <input id="textBoxName" type="Text" value="@name"/>
    <button onclick="ok();">OK</button>
    <span id="nameSpan">@Name</span>
    

    并在顶部定义函数,例如:

    <script type="text/javascript">
    
    function ok() {
          $("#nameSpan").html($("#textBoxName").val());      
    }
    </script>
    

    在基于Blazor的应用程序中,我们不再需要js,并且可以使用c#完成所有操作。

    您的最终代码如下所示:

    function ok() {
          $("#nameSpan").html($("#textBoxName").val());      
    }
    </script>
    
    <input id="textBoxName" type="Text"/>
    <button onclick="ok();">OK</button>
    <span id="nameSpan"></span>