MVC 6 中下拉列表的 TagHelpers onchange 事件

max*_*pan 5 c# asp.net-core-mvc

我有一个下拉列表,我想将 Jquery onchange 事件绑定到 TagHelpers 选择标记。下面是我的代码。

 <select asp-for="BusinessType"
         asp-items="@Model.BusinessTypeCollection">
 </select>
Run Code Online (Sandbox Code Playgroud)

如何绑定标记的内联 onchange 事件。

像这样的东西。

 <select asp-for="BusinessType"
         asp-items="@Model.BusinessTypeCollection"
         onchange ="something">
 </select>
Run Code Online (Sandbox Code Playgroud)

Wil*_*Ray 6

onchange如果要内联指定它,则是要使用的正确属性。您只需要确保 (a) 调用它并且 (b) 该函数在全局范围内可用。

例如:

<select asp-for="BusinessType"
        asp-items="Model.BusinessTypeCollection"
        onchange="test()"></select>

@section scripts {
    <script>
        function test() {
            alert('hi');
        }
    </script>
}
Run Code Online (Sandbox Code Playgroud)

话虽如此,一个更好的方法是通过在 JavaScript 中绑定事件(我在这里使用 jQuery,正如你在问题中提到的那样)并且只通过它的id属性引用元素。

<select asp-for="BusinessType"
        asp-items="Model.BusinessTypeCollection"></select>

@section scripts {
    <script>
        $("#BusinessType").on("change", function () {
            alert("changed!");
        });
    </script>
}
Run Code Online (Sandbox Code Playgroud)