我的应用程序是MVC 5,试图使用以下方法开发多选中复选框:
public static Dictionary<int, string> AdditionalInfo = new Dictionary<int, string>()
{
{ 1, "Exercise" },
{ 2, "Diet" }
};
public static int MapAdditionalInfo (string value)
{
return (from v in AdditionalInfo
where v.Value == value
select v.Key).FirstOrDefault();
}
public static string MapAdditionalInfo (int? value)
{
return (from v in AdditionalInfo
where v.Key == value
select v.Value).FirstOrDefault();
}
public string AdditionalInfo
{
get { return MapAdditionalInfo(AdditionalInfoID); }
set { AdditionalInfoID = MapAdditionalInfo(value); }
}在观点中:
@foreach (SelectListItem item in (IEnumerable<SelectListItem>)ViewData["Info"] )
{
<label><input value="@item.Value" name="AdditionalInfoID" id="AdditionalInfoID" type='checkbox' checked="@item.Selected" class="checkbox-inline" /><span class='lbl padding-4'>@item.Value </span></label>
}在主计长中:
ViewData["Info"] = MyModel.AdditionalInfo;我得到以下错误:
Unable to cast object of type 'System.Collections.Generic.Dictionary`2[System.Int32,System.String]' to type 'System.Collections.Generic.IEnumerable`1[System.Web.Mvc.SelectListItem]'.希望您能就如何解决这个错误提出建议,或者如果有一个更好的方法来开发复选框列表的例子。
发布于 2014-12-28 21:12:11
万一其他人有同样的问题,这里我是如何解决的:我把预期改为:
@foreach (var item in (Dictionary<int, string>)ViewData["Info"])以上代码的其余部分是相同的。
https://stackoverflow.com/questions/27673638
复制相似问题