C# 为什么在填充下拉列表时会发生此web http异常?
型号C# 为什么在填充下拉列表时会发生此web http异常?,c#,asp.net,asp.net-mvc,razor,drop-down-menu,C#,Asp.net,Asp.net Mvc,Razor,Drop Down Menu,型号 League和LeagueDivision是两个模型类 public class League { public int Id { get; set; } public string League1 { get; set; } public string Icon { get; set; } public virtual ICollection<LeagueDivision> LeagueDivisions { get; set; } } p
League
和LeagueDivision
是两个模型类
public class League
{
public int Id { get; set; }
public string League1 { get; set; }
public string Icon { get; set; }
public virtual ICollection<LeagueDivision> LeagueDivisions { get; set; }
}
public class LeagueDivision
{
public int Id { get; set; }
public Nullable<int> LeagueId { get; set; }
public string Name { get; set; }
public string Icon { get; set; }
public virtual League League { get; set; }
}
public class ViewModelForHostBooster
{
[Required(ErrorMessage = "Please enter price")]
[Display(Name = "Price")]
public decimal Price { get; set; }
[Required(ErrorMessage = "Please select a league")]
[Display(Name = "League")]
public int? SelectedLeague { get; set; }
[Required(ErrorMessage = "Please select a league division")]
[Display(Name = "League Division")]
public int? SelectedLeagueDivision { get; set; }
public SelectList LeagueList { get; set; }
public SelectList LeagueDivisionList { get; set; }
}
查看
@model HostBooster.Models.ViewModelForHostBooster
@using (Html.BeginForm())
{
<div>
@Html.LabelFor(m => m.Price)
@Html.TextBoxFor(m => m.Price)
@Html.ValidationMessageFor(m => m.Price)
</div>
<div>
@Html.LabelFor(m => m.SelectedLeague)
@model HostBooster.Models.ViewModelForHostBooster
@使用(Html.BeginForm())
{
@LabelFor(m=>m.Price)
@Html.TextBoxFor(m=>m.Price)
@Html.ValidationMessageFor(m=>m.Price)
@LabelFor(m=>m.SelectedLeague)
此处发生异常@Html.DropDownListFor(m=>m.SelectedLeague,Model.LeagueList)
@Html.DropDownListFor(m=>m.SelectedLeague,Model.LeagueList)
@Html.ValidationMessageFor(m=>m.SelectedLeague)
@Html.LabelFor(m=>m.SelectedLeagueDivision)
@Html.DropDownListFor(m=>m.SelectedLeagueDivision,Model.LeagueDivisionList)
@Html.ValidationMessageFor(m=>m.SelectedLeagueDivision)
}
视图中的模型。联盟列表
为空。它不应该为空。
如果像这样编辑视图代码(例如),效果很好:
<body>
@using (Html.BeginForm())
{
List<SelectListItem> listItems = new List<SelectListItem>();
listItems.Add(new SelectListItem
{
Text = "Example1",
Value = "Example1"
});
listItems.Add(new SelectListItem
{
Text = "Example2",
Value = "Example2",
Selected = true
});
listItems.Add(new SelectListItem
{
Text = "Example3",
Value = "Example3"
});
<div>
@Html.LabelFor(m => m.Price)
@Html.TextBoxFor(m => m.Price)
@Html.ValidationMessageFor(m => m.Price)
</div>
<div>
@Html.LabelFor(m => m.SelectedLeague)
@Html.DropDownListFor(m => m.SelectedLeague, listItems)
@Html.ValidationMessageFor(m => m.SelectedLeague)
</div>
<div>
@Html.LabelFor(m => m.SelectedLeagueDivision)
@Html.DropDownListFor(m => m.SelectedLeagueDivision, Model.LeagueDivisionList)
@Html.ValidationMessageFor(m => m.SelectedLeagueDivision)
</div>
<input type="submit" value="save" />
}
@使用(Html.BeginForm())
{
List listItems=新列表();
添加(新建SelectListItem)
{
Text=“Example1”,
Value=“Example1”
});
添加(新建SelectListItem)
{
Text=“Example2”,
Value=“Example2”,
所选=真
});
添加(新建SelectListItem)
{
Text=“Example3”,
Value=“Example3”
});
@LabelFor(m=>m.Price)
@Html.TextBoxFor(m=>m.Price)
@Html.ValidationMessageFor(m=>m.Price)
@LabelFor(m=>m.SelectedLeague)
@DropDownListFor(m=>m.SelectedLeague,listItems)
@Html.ValidationMessageFor(m=>m.SelectedLeague)
@Html.LabelFor(m=>m.SelectedLeagueDivision)
@Html.DropDownListFor(m=>m.SelectedLeagueDivision,Model.LeagueDivisionList)
@Html.ValidationMessageFor(m=>m.SelectedLeagueDivision)
}
请更新ViewModelForHostBooster。@StephenMuecke这是viewmodel的定义。我试图分享另一个例外的图像,但imgur不允许我。。。我只分享了一张图片,收到消息说我分享得太快了,请等50分钟mints@StephenMuecke数据绑定:“f__匿名类型0”2[[System.Int32,mscorlib,版本=4.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089],[System.String,mscorlib,版本=4.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089]]“”不包含名为“Id”的属性。这是中的错误消息browser@StephenMuecke第(59)行第57行:第58行:@Html.LabelFor(m=>m.SelectedLeague)第59行:@Html.DropDownListFor(m=>m.SelectedLeague,Model.LeagueList)第60行:@Html.ValidationMessageFor(m=>m.SelectedLeague)第61行:@StephenMuecke亲爱的对不起,我无法理解您的评论“需要在您的问题中加入(不接受与问题相关的代码图像链接)”谢谢您的指导。。我已经成功地实现了…现在我正在尝试实现Httppost方法,但是遇到了异常。请检查此链接并指导我如何处理此异常@Sulaiman请投票并接受此答案,如果此答案对您有帮助,那么人们知道这是正确的答案。
@Html.DropDownListFor(m => m.SelectedLeague, Model.LeagueList)
@Html.ValidationMessageFor(m => m.SelectedLeague)
</div>
<div>
@Html.LabelFor(m => m.SelectedLeagueDivision)
@Html.DropDownListFor(m => m.SelectedLeagueDivision, Model.LeagueDivisionList)
@Html.ValidationMessageFor(m => m.SelectedLeagueDivision)
</div>
<input type="submit" value="save" />
}
<body>
@using (Html.BeginForm())
{
List<SelectListItem> listItems = new List<SelectListItem>();
listItems.Add(new SelectListItem
{
Text = "Example1",
Value = "Example1"
});
listItems.Add(new SelectListItem
{
Text = "Example2",
Value = "Example2",
Selected = true
});
listItems.Add(new SelectListItem
{
Text = "Example3",
Value = "Example3"
});
<div>
@Html.LabelFor(m => m.Price)
@Html.TextBoxFor(m => m.Price)
@Html.ValidationMessageFor(m => m.Price)
</div>
<div>
@Html.LabelFor(m => m.SelectedLeague)
@Html.DropDownListFor(m => m.SelectedLeague, listItems)
@Html.ValidationMessageFor(m => m.SelectedLeague)
</div>
<div>
@Html.LabelFor(m => m.SelectedLeagueDivision)
@Html.DropDownListFor(m => m.SelectedLeagueDivision, Model.LeagueDivisionList)
@Html.ValidationMessageFor(m => m.SelectedLeagueDivision)
</div>
<input type="submit" value="save" />
}