Asp.net mvc 3 MVC 3 DropDownList for:无法计算';System.Web.Mvc.SelectList';无法序列化
我不知道如何使用DropDownList进行序列化,并收到错误“Type”System.Web.Mvc.SelectList”无法序列化。“我在向导表单中使用序列化,将用户输入保存到最后,然后发布确认 我在视图中使用以下内容:Asp.net mvc 3 MVC 3 DropDownList for:无法计算';System.Web.Mvc.SelectList';无法序列化,asp.net-mvc-3,serialization,drop-down-menu,Asp.net Mvc 3,Serialization,Drop Down Menu,我不知道如何使用DropDownList进行序列化,并收到错误“Type”System.Web.Mvc.SelectList”无法序列化。“我在向导表单中使用序列化,将用户输入保存到最后,然后发布确认 我在视图中使用以下内容: @using (Html.BeginFormAntiForgeryPost()) { @Html.Hidden("myData", new MvcSerializer().Serialize(Model, SerializationMode.Signed))
@using (Html.BeginFormAntiForgeryPost())
{
@Html.Hidden("myData", new MvcSerializer().Serialize(Model, SerializationMode.Signed))
...
@Html.DropDownListFor(m => m.RealEstate, Model.RealEstateList)
...
}
在我的ViewModel(MyData)中,我有:
[可序列化]
公共类myData
{
公共int不动产{get;set;}
公共IEnumerable不动产列表{get;set;}
...
公共MyData()
{
var realestatelist=新列表(){
新建SelectListItem{Text=“(请选择)”},
新建SelectListItem{Value=“1”,Text=“Some Text.”,
新建SelectListItem{Value=“2”,Text=“其他一些文本。”}
};
this.RealEstateList=新选择列表(RealEstateList,“值”、“文本”);
}
}
非常感谢您的帮助。选择列表不支持序列化。尝试在控制器中使用
IEnumerable
、IList
或List
,然后在视图中创建SelectList
将控制器更改为类似以下内容:
public MyData()
{
var realestatelist = new List<SelectListItem>() {
new SelectListItem { Text = "(Please select)" },
new SelectListItem { Value = "1", Text="Some text." },
new SelectListItem { Value = "2", Text="Some other text." }
};
this.RealEstateList = realestatelist;
}
}
SelectList不支持序列化。尝试在控制器中使用
IEnumerable
、IList
或List
,然后在视图中创建SelectList
将控制器更改为类似以下内容:
public MyData()
{
var realestatelist = new List<SelectListItem>() {
new SelectListItem { Text = "(Please select)" },
new SelectListItem { Value = "1", Text="Some text." },
new SelectListItem { Value = "2", Text="Some other text." }
};
this.RealEstateList = realestatelist;
}
}
正如错误所说,
SelectList
类无法序列化。如果需要序列化一组SelectListItem
对象,则需要使用可序列化的容器,如列表
您需要将列表
转换回视图中的选择列表
,如:
@{
var bindList = new SelectList(Model.RealEstateList);
}
@Html.DropDownListFor(m => m.RealEstate, bindList)
正如错误所说,
SelectList
类无法序列化。如果需要序列化一组SelectListItem
对象,则需要使用可序列化的容器,如列表
您需要将列表
转换回视图中的选择列表
,如:
@{
var bindList = new SelectList(Model.RealEstateList);
}
@Html.DropDownListFor(m => m.RealEstate, bindList)
我使用了你发布的@Html代码,但仍然得到了让我发疯的错误。简单的解决方案是更改我的代码
this.RealEstateList=newselectlist(RealEstateList,“Value”,“Text”)代码>到您的this.RealEstateList=RealEstateList代码>谢谢!!!我使用了你发布的@Html代码,但仍然得到了让我发疯的错误。简单的解决方案是更改我的代码this.RealEstateList=newselectlist(RealEstateList,“Value”,“Text”)代码>到您的this.RealEstateList=RealEstateList代码>谢谢!!!