所以我是新來的asp.net MVC 4編程,我碰到了另一個問題。將選定的值從我的視圖中傳遞到列表
這是我的模型類:
public class OtherMeeting
{
public int OtherMeetingId { get; set; }
[Required(ErrorMessage="Name is required")]
public String Name { get; set; }
[Required(ErrorMessage="Location is required")]
public String Location { get; set; }
[DataType(DataType.Date)]
[Required(ErrorMessage="Date is required")]
public DateTime StartDate { get; set; }
[DataType(DataType.Date)]
[DateGreaterThan("StartDate")]
public DateTime EndDate { get; set; }
public int CountryId { get; set; }
public virtual Country Country { get; set; }
public Type Type { get; set; }
public int EventId { get; set; }
public List<Event> Events { get; set; }
}
這是一個的給我的問題列表字段。
我在我的控制器下面的代碼:
public ActionResult Create()
{
ViewBag.EventId = new MultiSelectList(db.Events, "EventId", "Discipline");
ViewBag.CountryId = new MultiSelectList(db.Countries, "CountryId", "CountryName");
return View();
}
這是我在我的視圖代碼(我離開了編輯的其他領域,他們所有的工作,因爲他們應該):
這是在控制器我回發方法:
[HttpPost]
public ActionResult Create(OtherMeeting otherMeeting)
{
if (ModelState.IsValid)
{
db.OtherMeetings.Add(otherMeeting);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.EventId = new MultiSelectList(db.Events, "EventId", "Discipline");
ViewBag.CountryId = new MultiSelectList(db.Countries, "CountryId", "CountryName");
return View(otherMeeting);
}
現在很明顯的列表活動場仍然是空引用,所以我想知道,如何將我已選擇的項目添加到List Events字段。我在互聯網上做了一些研究,但我所得到的都是複雜的解決方案,如FormCollections,使用JQuery等等。它應該可以用一種非常簡單的方法解決,因爲這全部用於學校項目,而且他們不指望我們使用JQuery或高級編程。我也一直在考慮在EventListBox旁邊添加一個按鈕,這樣當我點擊它時,選定的項目將被傳遞到視圖外部的一個臨時列表,我可以稍後使用它填充原始列表。
這個答案是基於這樣一個假設,即事件類只有一個id和學科領域的權利? – 2013-05-01 08:28:36
@RobinHellemans不一定 - 它基於這樣的假設:那些是您視圖所需的唯一字段。創建一個只包含這些字段的新ViewModel,並像我在上面的「Create」方法中那樣從控制器中的「Event」對象填充它們。您不應該將您的域實體暴露給您的視圖。 – 2013-05-01 08:32:23
好吧,我很難理解你究竟在幹什麼。這部分代碼: public ActionResult Create() { var model = new OtherMeeting(); 的foreach(在db.Events事件E) { 變種eventModel =新EventViewModel { 編號= e.EventId, 名稱= e.Discipline }; model.Events.Add(eventModel); } return View(model); } 正如我所看到的,我將EventViewModel對象添加到我的列表事件字段中。但一個事件有多個字段,所以它只會爲其他字段添加空值?如果它們不可空? –
2013-05-01 08:55:21