2012-03-25 3 views
3

Я пытаюсь создать раскрывающийся список в представлении ASP.NET MVC3 на основе списка допустимых значений, связанных с моделью.Как создать выпадающий список в ASP.NET MVC3?

До сих пор в моей модели, у меня есть:

namespace NS 
{ 
    public class Model 
    { 
     public Model() 
     { 
      Status = new List<SelectListItem>(); 
      Status.Add(new SelectListItem { Text = "New", Value = "New" }); 
      Status.Add(new SelectListItem { Text = "PaymentPending", Value = "PaymentPending" }); 
      Status.Add(new SelectListItem { Text = "PaymentProcessed", Value = "PaymentProcessed" }); 
      Status.Add(new SelectListItem { Text = "Dispatched", Value = "Dispatched" }); 
      Status.Add(new SelectListItem { Text = "Complete", Value = "Complete" }); 
      Status.Add(new SelectListItem { Text = "Cancelled", Value = "Cancelled" }); 
     } 

     public List<SelectListItem> Status { get; set; } 
    } // class Model 
} // NS 

(очевидно, зачистка материал из ненужным)

Тогда на мой взгляд, у меня есть:

@model NS.Model 
@Html.DropDownListFor(Model.Status) 

Как видно из ответов на SO, похоже. Но я получаю ошибку:

Compiler Error Message: CS1501: No overload for method 'DropDownListFor' takes 1 arguments

Любые советы по оценке.

ответ

5

ошибка сообщение говорит само за себя, то DropDownListFor helper принимает два аргумента.

изменить вашу модель, чтобы иметь свойство содержать выбранное значение

public class Model 
{ 
public Model() { 
    Status = new List<SelectListItem>(); 
    Status.Add(new SelectListItem { Text = "New", Value = "New" }); 
    Status.Add(new SelectListItem { Text = "PaymentPending", Value = "PaymentPending" }); 
    Status.Add(new SelectListItem { Text = "PaymentProcessed", Value = "PaymentProcessed" }); 
    Status.Add(new SelectListItem { Text = "Dispatched", Value = "Dispatched" }); 
    Status.Add(new SelectListItem { Text = "Complete", Value = "Complete" }); 
    Status.Add(new SelectListItem { Text = "Cancelled", Value = "Cancelled" }); 
} 
public List<SelectListItem> Status { get; set; } 
public string SelectedVal{get;set;} 
} 

затем в представлении

@NS.Model 
@Html.DropDownListFor(x=> x.SelectedVal, x.Status) 
0

Первый параметр - это выбранное значение выпадающего списка из модели. Второе значение - это список статусов.

@Html.DropDownListFor(x=> x.SelectedValue, Model.Status) 
Смежные вопросы