3
我有一個DropDownListFor
,它爲我顯示Events
的列表。我正在嘗試POST
返回所選event
的ID
。 EventId
總是回來作爲0
。 (請忽略不服務層或倉庫的混亂,它只是一個樣本項目。)爲什麼我的DropDownListFor填充我的ID屬性,當我POST?
我的模型:
public List<SelectListItem> Events { get; set; }
public int EventId { get; set; }
筆者認爲:
@Html.DropDownListFor(m=> m.EventId, Model.Events, new { @class = "form-control" })
這是怎麼了在控制器中填入Events
:
[HttpGet]
public ActionResult Create()
{
//Setting up Events for the DropDownListFor
var events = db.Events.ToList().Select(e => new SelectListItem
{
Text = e.EventName,
Value = e.EventId.ToString()
}).ToList();
return View(new User {Events = events });
}
在我POST
:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "UserId,FirstName,LastName,Age,VehicleMake,VehicleModel,VehicleYear,AreGuestsAttending,TotalGuests")] User user)
{
if (ModelState.IsValid)
{
db.Users.Add(user);
db.SaveChanges();
var enrollUserForEvent = new Enrollment
{
UserId = user.UserId,
EventId = user.EventId
};
_enrollmentController.Create(enrollUserForEvent);
return RedirectToAction("Index", "Event");
}
return View(user);
}
我試着與幾個不同的東西玩耍,如:
var eventIdString = user.Events.First(e => e.Selected == true).Value;
int eventId = Int32.Parse(eventIdString);
但在上述情況下user.Events
是null
。
在玩了四周,四處搜尋後,我找不到任何關於我可能在這裏做錯了什麼。其他所有東西都回復得很好,所以我不確定爲什麼我沒有讓EventId
回來一切。任何幫助,將不勝感激!
不客氣!我很高興我幫助:) – Christos