Soy nuevo en ASP.NET. Intento imprimir la cadena seleccionada en el menú desplegable de opciones de selección, pero hay un error de compilación.
Descripción del error de compilación: se produjo un error durante la compilación de un recurso necesario para atender esta solicitud. Revise los siguientes detalles de error específicos y modifique su código fuente según corresponda.
Mensaje de error del compilador: CS0201: solo las expresiones de asignación, llamada, incremento, decremento, espera y nuevo objeto se pueden usar como declaración
Aquí está mi código cshtml.
@{ string FromAMPM = "AM"; } <select id="FromAMPM" name="FromAMPM" class="form-control js-select"> <option value=""></option> <option value="AM" @if (FromAMPM == "AM") { "selected"; } else { ""; }>AM</option> <option value="PM" @if (FromAMPM == "PM") { "selected"; } else { ""; }>PM</option> </select>¿Qué equivocado? Gracias
Puede usar el ternary conditional operator en su caso:
@{ string FromAMPM = "AM"; } <select id="FromAMPM" name="FromAMPM" class="form-control js-select"> <option value=""></option> <option value="AM" @(FromAMPM == "AM" ? "selected='selected'" : "")>AM<</option> <option value="PM" @(FromAMPM == "PM" ? "selected='selected'" : "")>PM<</option> </select>La mejor manera sería lógica separada y html.
@{ var FromAMPM = "PM"; var items = new List<SelectListItem> { new SelectListItem { Value= "", Text="Select" }, new SelectListItem { Value= "AM", Text="AM" }, new SelectListItem { Value="PM", Text="PM"} }; }no necesita el código seleccionado, seleccionará automáticamente el valor asp-for
<select id="fromAMPM" asp-for="@FromAMPM" class="form-control js-select" asp-items="@items"></select>