Estoy usando una etiqueta Select y tengo foreach que agrega los valores a la lista, pero tengo que llamar a un controlador de actualización y pasarle 2 parámetros usando ActionLink . Intenté hacerlo de esta manera pero no funciona. queria saber que estoy haciendo mal?
<form action="Update " method="get" class="select-menu"> <select id="sectionId" name="sectionId" class="selectpicker" title="Section" data-width="100%" data-live-search="true" onchange="this.form.submit()"> @foreach (var item in Model) { <option value="@item.Text" data-url="@Html.ActionLink(item.Text, "UpdateBoard", new { subSectionID = item.Value, subsectionName = item.Text })"></option> } </select> </form> La consulta debería ser algo como esto http://localhost:60082/Update?subSectionID=27&subsectionName=Something
¡Gracias!
El uso de la etiqueta de select dentro del form de la manera descrita anteriormente no funcionará correctamente porque el form no tiene parámetros adicionales para la ruta ( subSectionID y subsectionName ). Como resultado, el método de acción Update recibirá los parámetros subSectionID y subsectionName como null .
Por lo tanto, para que estos parámetros se establezcan dinámicamente en función de una selección, intente lo siguiente:
<script type="text/javascript"> $('#sectionId').change(function () { var url = $(this).val(); if (url != null && url != '') { window.location.href = url; } }) </script> <select id="sectionId" name="sectionId" class="selectpicker" title="Section" data-width="100%" data-live-search="true"> @foreach (var item in Model) { <option value="@Url.Action("SetLanguage", new { subSectionID = item.Value, subsectionName = item.Text })">@item.Text</option> } </select> Dentro de foreach use Url.Action helper en lugar de Html.ActionLink . El ayudante Url.Action genera una URL completa para un método de acción mediante el nombre de acción y los valores de ruta especificados.
Pero Html.ActionLink devuelve un elemento de anclaje para el texto del enlace especificado, la acción y esto puede causar problemas adicionales cuando se pasa al lado del servidor.