2011-08-28 13 views
0

選択した項目のIDをデータベースに保存する必要があります。ドロップダウンからアイテムを選択すると、常にnull値が返されます。ここでドロップダウンリストで選択した項目のIDを取得

は、いくつかのコードは次のとおりです。 コントローラー:

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" })%> 

MODEL: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; } 

} 

そして今、私が選択した項目のIDを取得したいです:

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

Html.DropDownListの最初のパラメータはHTML Idです。

あなたのViewModelにCategoryIdを追加し、にあなたのドロップダウンリストを変更します。

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

それともこれはあなたの現在のコードで動作する(ただし、テストされていない)可能性があります

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

私の現在のコードではあり「Category_ID」と呼ばれるものは何もありません!! – kandroid

+0

Asp.Net MVCはCategory.IDをCategory_IDに変換します...試してください – Martin

+0

Nop..the "Category_ID"は機能しません。 – kandroid

関連する問題