No puede usarlo de esa manera. Como su nombre indica es para devolver un elemento de selección de HTML para cada propiedad en el objeto que se representa mediante la expresión especificada utilizando los elementos de lista especificados y los atributos de HTML.
Aunque puede crear este objeto de lista a la vista como siguiente: -
@Html.DropDownListFor(model => model.DropDownElement,
new SelectList(model.DropDownElement, "Id", "Name"))
actualización
voy a tomar el ejemplo de un modelo de país con un par nombre/ID. Como siguiente
public class Country
{
public int Id { get; set; }
public string Name { get; set; }
}
Ahora, en su acción del controlador, puede pasar como un selectlist:
public ActionResult YourAction()
{
YourModel yourModel = new YourModel(); // Just for reference. I suppose you must be passing some model to your view
ViewBag.DropDownList = new SelectList(db.Countries, "Id", "Name"); // This way you don't need to make any changes with your passing model.
return View(yourModel);
}
Y finalmente a la vista, se puede utilizar el DropDownListFor de la siguiente manera.
@Html.DropDownListFor(model => model.YourModelProperty,
(IEnumerable<SelectListItem>)ViewBag.DropDownList, "---Select a value---")
En una nota, si lo que desea es visualizar una lista de números con valor, se puede introducir directamente el código HTML y utilizarlo, en lugar de utilizar el DropDownListFor. Al igual que follwing
<select id="yourModelPropertyName" name="yourModelPropertyName">
<option value="">---Select Value---</option>
<option value="1">India</option>
<option value="2">Australia</option>
<option value="3">US</option>
<option value="4">England</option>
<option value="5">Finland</option>
</select>
Sólo asegúrese de que "yourModelPropertyName" es correcta y que debería ser el de la propiedad en la que desea que actualiza
más Actualizar
En los puntos de vista en el que wan 't para mostrar el valor seleccionado, utilice el código de abajo
<select id="yourModelPropertyName" name="yourModelPropertyName">
<option selected="selected" value="1">@model.YourDropDownList</option>
<option value="2">India</option>
<option value="3">Australia</option>
</select>
Esto hará el truco :-)
¿Por qué no quieres que los artículos provengan de la vista? La vista solo debe presentar datos. ¿Por qué no puedes usar un modelo de vista? Tengo una muestra desplegable en http://code.msdn.microsoft.com/Using-the-DropDownList-67f9367d – RickAndMSFT