动态读取输入 Razor MVC C#
Posted
技术标签:
【中文标题】动态读取输入 Razor MVC C#【英文标题】:Dynamically read of inputs 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()”是在渲染元素时执行的,而不是像我想要的那样在点击事件上执行。
【问题讨论】:
【参考方案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)">
【讨论】:
以上是关于动态读取输入 Razor MVC C#的主要内容,如果未能解决你的问题,请参考以下文章
使用 MVC 渲染具有嵌入式 Razor 变量的动态 HTML
MVC 4 Razor - 动态命名javascript函数