【问题标题】:Dynamically read of inputs Razor MVC C#动态读取输入 Razor MVC C#
【发布时间】:2021-11-22 01:54:34
【问题描述】:

我在从动态创建的组合框中聚合输入时遇到问题。 在我看来 .cshtml 我正在创建具有多种选择的多个元素 我正在尝试将 onClick 触发器设置为这个元素,就像在 sn-p 中一样:

 @foreach (var value in values)
  {
     <option onclick="@UpdateSelectedFilters(item.DisplayName, value)" value="@value" >@value</option>
  }

但不幸的是,这个函数“@UpdateSelectedFilters()”是在渲染元素时执行的,而不是像我想要的那样在点击事件上执行。

【问题讨论】:

    标签: c# html asp.net-mvc asp.net-core razor


    【解决方案1】:

    如果您的项目不是 Blazor,您不能在 onClick 事件中使用 @。

    您可以创建一个 javascript 函数,例如:

    function UpdateSelectedFilters(displayname, value){
        ...some code 
    }
    

    您可以查看下面的答案

    here

    【讨论】:

      【解决方案2】:

      UpdateSelectedFilters是一个js函数,所以你不需要在它之前使用@。尝试使用

      <option onclick="UpdateSelectedFilters(@item.DisplayName, @value)" value="@value" >@value</option>
      

      这样您就可以将 C# 数据传递给 js 函数。

      【讨论】:

        【解决方案3】:

        更改为 javascript 还不够,模型也应该绑定在例如 asp-items 中

        <select id="@name" class="form-control col-lg-3" style="margin-right: 10px; margin-top:10px" name="@name" asp-items="@options" onchange="UpdateSelectedFilters(this.name,this.value)">
        

        【讨论】:

          猜你喜欢
          • 2019-02-01
          • 2018-01-22
          • 1970-01-01
          • 2014-06-14
          • 1970-01-01
          • 2016-11-07
          • 1970-01-01
          • 2020-05-24
          • 2011-09-19
          相关资源
          最近更新 更多