podría utilizar el ayudante DropDownListFor
. Me gustaría empezar por definir una vista de modelo:
public class AnswersViewModel
{
public string SelectedAnswer { get; set; }
public IEnumerable<SelectListItem> Answers
{
get
{
return new[]
{
new SelectListItem { Value = "1", Text = "1 answer" },
new SelectListItem { Value = "2", Text = "2 answers" },
new SelectListItem { Value = "3", Text = "3 answers" },
};
}
}
}
luego de un controlador:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new AnswersViewModel();
return View(model);
}
[HttpPost]
public ActionResult Index(AnswersViewModel model)
{
return View(model);
}
}
y, finalmente, una vista inflexible:
@model AnswersViewModel
@using (Html.BeginForm())
{
@Html.DropDownListFor(
x => x.SelectedAnswer,
new SelectList(Model.Answers, "Value", "Text")
)
<input type="submit" value="OK" />
}
Ahora, cuando el usuario envía el formulario del Índice Se invocará la acción POST y la propiedad SelectedAnswer
del modelo de vista se completará automáticamente con la selección del usuario del menú desplegable.
Wow, Darin, tu respuesta es muy buena. Puedo aprender mucho de ti. Muchas gracias !! – MaryJean
Una pregunta. Dice que SelectListItem no se pudo encontrar. ¿Debo definir esa clase? – MaryJean
@MaryJean, no, debe importar el espacio de nombres donde se define esta clase: 'using System.Web.Mvc'. –