Asp.net mvc 4 @Html.LisboxFor多个项目的模型绑定
我的班级是Asp.net mvc 4 @Html.LisboxFor多个项目的模型绑定,asp.net-mvc-4,model-binding,html.listboxfor,Asp.net Mvc 4,Model Binding,Html.listboxfor,我的班级是 public partial class Team { public int TeamId { get; set; } public string TeamName { get; set; } public string TeamDescription { get; set; } public virtual IList<Trials> Trials { get; set; } } 公共部分
public partial class Team
{
public int TeamId { get; set; }
public string TeamName { get; set; }
public string TeamDescription { get; set; }
public virtual IList<Trials> Trials { get; set; }
}
公共部分类团队
{
public int TeamId{get;set;}
公共字符串TeamName{get;set;}
公共字符串TeamDescription{get;set;}
公共虚拟IList试验{get;set;}
}
审判是另一个过程
public partial class Trials
{
public int TrialID { get; set; }
public string Name { get; set; }
public int TrialTyp_RefID { get; set; }
public bool isChk { get; set; }
public virtual ICollection<Team> Team { get; set; }
}
公开部分班级考试
{
public int TrialID{get;set;}
公共字符串名称{get;set;}
public int TrialTyp_RefID{get;set;}
公共bool isChk{get;set;}
公共虚拟ICollection团队{get;set;}
}
在我看来,我正在尝试将ListBoxFor与团队内部的测试绑定在一起
@model Trials.Classes.Team
<td colspan="2">
@Html.ListBoxFor(model=> model.Trials,
new SelectList(ViewBag.trials,"TrialID", "Name"),
new { @class = "chosen-select", data_placeholder = "Select Trials...", style = "width:500px;", tabindex = "4" }
)
</td>
@model Trials.Classes.Team
@Html.ListBoxFor(model=>model.Trials,
新选择列表(ViewBag.trials、“TrialID”、“Name”),
新建{@class=“selected select”,data_placeholder=“select Trials…”,style=“width:500px;”,tabindex=“4”}
)
我无法为控制器中的试算获取任何值。它显示为null,但我从列表框中选择了多个值。多个选择仅发回一个基元值数组。它不会回发复杂对象的集合 您需要一个具有属性的视图模型来绑定所选的
Trials
public class TeamVM
{
public int TeamId { get; set; }
....
public int[] SelectedTrials { get; set; }
public SelectList Trials { get; set; } // Assign this in your controller rather than using ViewBag
}
那么在你看来
@Html.ListBoxFor(m => m.SelectedTrials, Model.Trials)
回发时,
Team.SelectedTrials
将包含和数组所选的TrialID
值。我将Team类更改为
public partial class Team
{
public int TeamId { get; set; }
public string TeamName { get; set; }
public string TeamDescription { get; set; }
public virtual IList<Trials> Trials { get; set;
public int[] AuthorisedTrials { get; set; }
}
公共部分类团队
{
public int TeamId{get;set;}
公共字符串TeamName{get;set;}
公共字符串TeamDescription{get;set;}
公共虚拟IList试验{get;set;
public int[]authorizedTrials{get;set;}
}
以及
@model Trials.Classes.Team
<td colspan="2">
@Html.ListBoxFor(model=> model.AuthorisedTrials ,
new SelectList(ViewBag.trials,"TrialID", "Name"),
new { @class = "chosen-select", data_placeholder = "Select Trials...", style = "width:500px;", tabindex = "4" }
)
</td>
@model Trials.Classes.Team
@Html.ListBoxFor(model=>model.authorizedTrials,
新选择列表(ViewBag.trials、“TrialID”、“Name”),
新建{@class=“selected select”,data_placeholder=“select Trials…”,style=“width:500px;”,tabindex=“4”}
)
在我的控制器中,我能够获得所选试验的Vlaues谢谢Stephen…再次感谢您澄清我们不能这样做…我已经尝试了您建议的字符串数组,并且能够在字符串数组中获得值…但是我想知道如何直接将其与团队cla中的Trials对象绑定ss…再次感谢