Bạn không thể sử dụng theo cách đó. Như tên cho thấy nó cho trả về một phần tử chọn HTML cho mỗi thuộc tính trong đối tượng được biểu diễn bằng biểu thức được chỉ định bằng cách sử dụng các mục danh sách được chỉ định và các thuộc tính HTML.
Mặc dù bạn có thể tạo đối tượng trong danh sách này theo quan điểm như sau: -
@Html.DropDownListFor(model => model.DropDownElement,
new SelectList(model.DropDownElement, "Id", "Name"))
Cập nhật
Tôi sẽ lấy ví dụ về một mô hình nước với một cặp Id/Name. Giống như sau
public class Country
{
public int Id { get; set; }
public string Name { get; set; }
}
Bây giờ, trong hành động điều khiển của bạn, bạn có thể vượt qua nó như một 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);
}
Và cuối cùng trong View, bạn có thể sử dụng DropDownListFor theo cách sau đây.
@Html.DropDownListFor(model => model.YourModelProperty,
(IEnumerable<SelectListItem>)ViewBag.DropDownList, "---Select a value---")
Trên một Sidenote, nếu bạn chỉ muốn hiển thị một danh sách các số có giá trị, bạn có thể trực tiếp nhập vào HTML và sử dụng nó, thay vì sử dụng DropDownListFor. Giống như 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>
Chỉ cần chắc chắn rằng "yourModelPropertyName" là đúng và nó sẽ là một cho bất động sản nơi bạn muốn nó được cập nhật
More cập nhật
Trong quan điểm nơi bạn wan để hiển thị giá trị đã chọn, hãy sử dụng mã bên dưới
<select id="yourModelPropertyName" name="yourModelPropertyName">
<option selected="selected" value="1">@model.YourDropDownList</option>
<option value="2">India</option>
<option value="3">Australia</option>
</select>
Điều này sẽ thực hiện thủ thuật :-)
Tại sao bạn không muốn các mục đến từ chế độ xem? Chế độ xem chỉ hiển thị dữ liệu. Tại sao bạn không thể sử dụng mô hình xem? Tôi có một mẫu thả xuống tại http://code.msdn.microsoft.com/Using-the-DropDownList-67f9367d – RickAndMSFT