【问题标题】: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)">