我有這個問題,我想爲每週的每一天做7個下拉菜單。 在每個下拉列表中,我希望添加相同的數據。使用ViewModel在MVC3 C#中創建下拉菜單,並在POST上創建簡單的模型綁定。
我的視圖模型:
public class WeekDienstCreateViewModel
{
public WeekDienst weekDienst {get; set;}
public List<DienstPerWeekDienst> diensten { get; set; }
public WeekDienstCreateViewModel() { }
}
我在控制器中創建方法: 就像你看到的我添加的一切,除了媒體鏈接這DienstId是想與我的下拉菜單添加。
public ActionResult Create(int id)
{
WeekDienst wd = _service.FindWeekDienst(id);
WeekDienstCreateViewModel vm = new WeekDienstCreateViewModel();
vm.diensten = new List<DienstPerWeekDienst>();
vm.weekDienst = wd;
for (int i = 1; i <= 7; i++)
{
DienstPerWeekDienst dpwd = new DienstPerWeekDienst();
dpwd.volgnummer = i;
dpwd.WeekDienstId = wd.Id;
vm.diensten.Add(dpwd);
}
ViewBag.Diensten = _service.DienstenList(wd.AfdelingId);
return View(vm);
}
類:
public class DienstPerWeekDienst
{
[Key]
public int Id { get; set; }
[Required]
public int WeekDienstId { get; set; }
[Required]
public int DienstId { get; set; }
[Required]
[Range(1, 7)]
public int volgnummer { get; set; }
[ForeignKey("WeekDienstId")]
public virtual WeekDienst WeekDienst { get; set; }
[ForeignKey("DienstId")]
public virtual Dienst Dienst { get; set; }
public virtual ICollection<WeekDienst> WeekDiensten { get; set; }
}
public class WeekDienst
{
[Key]
public int Id { get; set; }
[Required]
public int AfdelingId { get; set; }
[Required]
[StringLength(5, ErrorMessage = "Value for {0} cannot exceed {1} characters.")]
[RegularExpression(@"^[a-zA-Z0-9]{5}$", ErrorMessage = "Verplicht 5 cijfers lang.")]
public string code { get; set; }
[DisplayName("Template")]
public bool template { get; set; }
[ForeignKey("AfdelingId")]
public virtual Afdeling Afdeling { get; set; }
}
在我看來,我希望創建7個下拉菜單這裏我把我的所有 「Diensten」(類丁斯特,FK在DienstPerWeekDienst)。當我選擇1時,我希望將「DienstId」添加到「DienstPerWeekDienst」類中。
所以,在我看來,我得到這個:
@foreach (var day in Model.diensten)
{
var currentDay=day;
@Html.DropDownListFor(currentDropDown=>currentDay, new SelectList(ViewBag.Diensten, "Value", "Text"))
}
我想回發選擇了「Diensten」,創造了「WeekDienst」,但現在我只是張貼空「DienstPerDienstWeekCreateViewModel」。我怎樣才能解決這個問題?
由於提前
FIX(感謝溼婆戈帕爾)
我解決了這個問題做:
@for (int i = 0; i < @Model.diensten.Count; i++)
{
@Html.HiddenFor(m => (m.diensten[i].volgnummer))
@Html.HiddenFor(m => (m.diensten[i].WeekDienstId))
@Html.DropDownListFor(m=> (m.diensten[i].DienstId), new SelectList(ViewBag.Diensten, "Value", "Text"))
}
請讓我知道,如果你看到我給出的解決方案後仍然面臨問題。 – 2012-03-01 09:40:23