Asp.net mvc MVC-实时检查drowdownlist值

Asp.net mvc MVC-实时检查drowdownlist值,asp.net-mvc,drop-down-menu,Asp.net Mvc,Drop Down Menu,每次更改选定值时,如何在MVC中实时检查dropdownlist selectedvalue <div class="modal-body"> Ticket Category: @Html.DropDownList("TicketCategory", (SelectList)ViewBag.TicketCategory, "--Select Category--") </div> @if(TicketCategory.SelectedVa

每次更改选定值时,如何在MVC中实时检查dropdownlist selectedvalue

<div class="modal-body">
     Ticket Category:     @Html.DropDownList("TicketCategory", (SelectList)ViewBag.TicketCategory, "--Select Category--")
    </div>
    @if(TicketCategory.SelectedValue == "")
    {
        //do
    }
    else
    {
        //do 
    }

在这种情况下,找不到TicketCategory,是缺少一些转换还是必须检索元素?

对于DropDownList,您有一个额外的参数用于声明一些htmlAttributes

从我的观点来看,您必须始终使用js smth类标记您正在收听的输入

剃刀:

<div class="modal-body js-modalBody">
     Ticket Category:     @Html.DropDownList("TicketCategory", (SelectList)ViewBag.TicketCategory, "--Select Category--",  new { @class = "js-ticketCategory" })
</div>
在此之后,您可以添加一个脚本标记,监听输入的更改事件。 假设您搜索的值为3,下面是您的代码

<script>

$('.js-modalBody').on('change', '.js-ticketCategory', function (ev) {
    if ($(ev.currentTarget).val() == "3") {
        // do something 
    } else {
        // do something else 
    }
});

</script>

注意:在视图中使用javascript并不是一个好方法。

为特定的dropdownlist处理Jquery onchage事件。如果您想执行一些服务器端操作,那么可以在onchange事件中使用AJAX GET/POST。TicketCategory是您模型的属性吗?在这种情况下,它需要@ifModel.TicketCategory==或者它只是一个ViewBag属性吗?在这种情况下,使用ViewBag.TicketCategory。您不能将SelectList命名为与绑定到的属性相同的名称,因此请更改其中一个。@StephenMuecke否,它只是一个ViewBag,因为我在视图中有不同的模型。您可以添加javascript函数@Html.DropDownListTicketCategory,SelectListViewBag.TicketCategory,-Select Category,-新建{onchange=UpdateProductthis;只需添加一个脚本-$'TicketCategory'.changefunction{if$this.val{//do something}else{//do something};