2013-03-04 11 views
0

Я ищу много здесь и найти что-то вроде этого, чтобы сделать выпадающий списокDROPDOWNLIST вставка NULL

это мой контроллер: Это передать мои данные для DROPDOWNLIST ...

public ActionResult Create() 
{ 
    var dba = new WHFMDBContext(); 
    var query = dba.Categories.Select(c => new { c.Id, c.Name }); 
    ViewBag.Id = new SelectList(query.AsEnumerable(), "Id", "Name", 3); 
    return View(); 
} 




[HttpPost] 
     [InitializeSimpleMembership] 
     public ActionResult Create(Profits profits) 
     { 
      var user = db.UserProfiles.FirstOrDefault(x => x.UserId == WebSecurity.CurrentUserId); 
      var profit = new Profits 
      { 
       Value= profits.Value, 
       Description = profits.Description, 
       DateInput =profits.DateInput, 
       CategoryName =profits.CategoryName,// ??? 
       User = user, 

      }; 
      db.Profits.Add(profit); 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 

Мой Вид:

@model WebHFM.Models.Profits 



@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 

    <fieldset> 
     <legend>Profits</legend> 

     <div class="editor-field"> 
      @Html.DropDownList("Id", (SelectList) ViewBag.Id, "--Select One--") 
      </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.CategoryName.Id) 
      @Html.ValidationMessageFor(model => model.CategoryName.Id) 
     </div> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.Value) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.Value) 
      @Html.ValidationMessageFor(model => model.Value) 
     </div>... 

Вставить данные в базу данных, но CategoryName_Id - NULL, что мне не хватает? и CategoryName = profits.CategoryName это внешний ключ к категориям в прибыли public Categories CategoryName { get; set; }

+0

'Value = Convert.ToString (c.Id)' может зафиксировать, что –

+0

Можете ли вы добавить определение класса для 'WebHFM.Models.Profits'? –

ответ

5

Вызов .ToString() на вашем Id

model.CategoryMenu = db.Categories.Select(c => new SelectListItem { 
                Text = c.Name, 
                Value = c.Id.ToString(), 
                } 
             ); 
+0

это не работает – Krasimir

+0

@ user2026573 Можете ли вы предоставить трассировку или другую информацию, отличную от «это не работает»? –

+0

О, мне жаль, что я переустанавливаю свой вопрос ... – Krasimir

Смежные вопросы