événement onchange pour html.dropdownlist

J’essaie de déclencher une méthode d’action pour l’événement onchange pour la liste déroulante. Comment puis-je faire cela sans utiliser jquery onchange.

@Html.DropDownList("Sortby", new SelectListItem[] { new SelectListItem() { Text = "Newest to Oldest", Value = "0" }, new SelectListItem() { Text = "Oldest to Newest", Value = "1" }}) 

Merci

Tu peux le faire

 @Html.DropDownList("Sortby", new SelectListItem[] { new SelectListItem() { Text = "Newest to Oldest", Value = "0" }, new SelectListItem() { Text = "Oldest to Newest", Value = "1" } , new { onchange = @"form.submit();" } }) 

Si vous ne voulez pas jquery, vous pouvez le faire avec javascript:

 @Html.DropDownList("Sortby", new SelectListItem[] { new SelectListItem() { Text = "Newest to Oldest", Value = "0" }, new SelectListItem() { Text = "Oldest to Newest", Value = "1" }}, new { @onchange="CallChangefunc(this.value)" })  
 @Html.DropDownListFor(m => m.State, new SelectList(ViewBag.StateList, "StateId", "StateName"), "Select state", new { @class = "form-control", @onchange="FillCity()" }) function FillCity() { var stateId = $('#State').val(); $.ajax({ url: '/Employees/FillCity', type: "GET", dataType: "JSON", data: { State: stateId}, success: function (cities) { $("#City").html(""); // clear before appending new list $.each(cities, function (i, city) { $("#City").append( $('').val(city.CityId).html(city.CityName)); }); } }); } 

Vous pouvez essayer ceci si vous transmettez une valeur à la méthode d’action.

 @Html.DropDownList("Sortby", new SelectListItem[] { new SelectListItem() { Text = "Newest to Oldest", Value = "0" }, new SelectListItem() { Text = "Oldest to Newest", Value = "1" }},new { onchange = "document.location.href = '/ControllerName/ActionName?id=' + this.options[this.selectedIndex].value;" }) 

Supprime la chaîne de requête en cas d’absence de paramètre.

Si vous avez une vue en liste, vous pouvez faire ceci:

  1. Définir une liste de sélection:

     @{ var Acciones = new SelectList(new[] { new SelectListItem { Text = "Modificar", Value = Url.Action("Edit", "Counsortinges")}, new SelectListItem { Text = "Detallar", Value = Url.Action("Details", "Counsortinges") }, new SelectListItem { Text = "Eliminar", Value = Url.Action("Delete", "Counsortinges") }, }, "Value", "Text"); } 
  2. Utilisez la liste de sélection définie pour créer un identifiant différent pour chaque enregistrement (rappelez-vous que l’identifiant de chaque élément doit être unique dans une vue) et appelez une fonction javascript pour l’événement onchange (incluez les parameters dans l’exemple d’url et la clé d’enregistrement):

     @Html.DropDownList("ddAcciones", Acciones, "Acciones", new { id = item.CountryID, @onchange = "RealizarAccion(this.value ,id)" }) 
  3. fonction onchange peut être quelque chose comme:

     @section Scripts {    @Scripts.Render("~/bundles/jqueryval") }