Получить идентификатор выбранного элемента в выпадающем списке - PullRequest
0 голосов
/ 29 августа 2011

Я должен сохранить идентификатор выбранного элемента в базе данных.но я всегда получаю нулевое значение, когда выбираю элемент из выпадающего списка.

Вот некоторый код: Контроллер:

public ActionResult Create()
    {
        SelectList CategoryList = new SelectList(dc.Category.ToList(), "ID", "CategoryName");
        ViewData["Categories"] = CategoryList;
        ViewData.Model = new AdvertModel();
        return View();
    }

Вид:

<%:Html.DropDownList("Categories", ViewData["Categories"] as SelectList, new { @class = "dropdown" })%>

МОДЕЛЬ: AdvertModel

public class AdvertModel
{
    public Int32 ID { get; set; }

    [Required(AllowEmptyStrings=false,ErrorMessage="Please enter the title of your Ad.")]
    [Display(Name="Title")]
    public string Title { get; set; }

    [Required(AllowEmptyStrings=false,ErrorMessage="Please enter a description of your Ad.")]
    [Display(Name = "Details")]
    public string Details { get; set; }

    [Required(AllowEmptyStrings=false,ErrorMessage="Please enter when your Ad. will be publish")]
    [Display(Name = "Publish date")]
    [DataType(DataType.Date)]
    public DateTime PubDate { get; set; }

    [Required]
    public DateTime EntryDate { get; set; }

    public bool AdStatus { get; set; }

    [Required]
    [Display(Name = "Category")]
    public Category Category { get; set; }

}

И теперь я хочу получить идентификатор выбранного элемента:

public ActionResult Create(AdvertModel ad)
    {
        Advert nAD = new Advert();
        nAD.Title = ad.Title;
        nAD.Message = ad.Details;
        nAD.PublishDate = ad.PubDate;

        nAD.Category = ad.Category.ID;// here I always get null. 

        dc.Advert.AddObject(nAD);
        dc.SaveChanges();

        return View(ad);
    }

Есть идеи, где я делаю неправильно ??

1 Ответ

2 голосов
/ 29 августа 2011

Первый параметр Html.DropDownList - это HTML Id.

Добавьте CategoryId к вашей ViewModel и измените свой выпадающий список на:

<%:Html.DropDownList("CategoryId", ViewData["Categories"] as SelectList, new { @class = "dropdown" })%>

Или это может работать с вашим текущим кодом (но не проверенным):

<%:Html.DropDownList("Category_ID", ViewData["Categories"] as SelectList, new { @class = "dropdown" })%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...