Asp.net mvc 数据绑定:';型号';不包含名为';键';
对MVC来说比较新 我使用EF作为SQL数据库的ORM,但我被告知不要使用EF,而只使用普通的数据层 加载带有SelectList的模型时出错 这是我的“达尔”:Asp.net mvc 数据绑定:';型号';不包含名为';键';,asp.net-mvc,Asp.net Mvc,对MVC来说比较新 我使用EF作为SQL数据库的ORM,但我被告知不要使用EF,而只使用普通的数据层 加载带有SelectList的模型时出错 这是我的“达尔”: public SQLiteDataReader GetFilters() { var cmd = new SQLiteCommand(); cmd.Connection = GetConnection(); cmd.CommandType = System.Data.CommandType.Text;
public SQLiteDataReader GetFilters()
{
var cmd = new SQLiteCommand();
cmd.Connection = GetConnection();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "SELECT * FROM Filter";
return cmd.ExecuteReader();
}
这是我的“生意”:
public IEnumerable<Filters> LoadFilterTypes()
{
var ctx = new DAL();
List<Filters> filters = new List<Filters>();
using (var dt = ctx.GetFilters())
{
while (dt.Read())
{
filters.Add(new Filters { Key = Convert.ToInt16(dt["FilterKey"]), FilterType = dt["FilterType"].ToString() });
}
}
return filters;
}
这是我的ViewModel:
public class CloudData
{
[Display(Name = "SelectedFilter")]
public int? SelectedFilter { get; set; }
public SelectList FilterList { get; set; }
}
这是我的控制器:
public IEnumerable<Filters> LoadFilterTypes()
{
var ctx = new DAL();
List<Filters> filters = new List<Filters>();
using (var dt = ctx.GetFilters())
{
while (dt.Read())
{
filters.Add(new Filters { Key = Convert.ToInt16(dt["FilterKey"]), FilterType = dt["FilterType"].ToString() });
}
}
return filters;
}
public ActionResult Feed(string id, string guid)
{
var model = new CloudData();
var filterList = LoadFilterTypes();
model.FilterList = new SelectList(filterList, "Key", "FilterType");
return View(model);
}
public IEnumerable LoadFilterTypes()
{
var ctx=新的DAL();
列表过滤器=新列表();
使用(var dt=ctx.GetFilters())
{
而(dt.Read())
{
添加(新过滤器{Key=Convert.ToInt16(dt[“FilterKey”]),FilterType=dt[“FilterType”].ToString());
}
}
回流过滤器;
}
公共ActionResult提要(字符串id、字符串guid)
{
var模型=新的CloudData();
var filterList=LoadFilterTypes();
model.FilterList=新的选择列表(FilterList,“Key”,“FilterType”);
返回视图(模型);
}
这是我的错误:
我在过滤器列表上设置了一个断点,现在正在填充它
请问我做错了什么
谢谢我想问题可能是您将
键
声明为字段,而不是属性。你能试试这个吗
public class Filters
{
public string FilterType { get; set; }
public int Key { get; set; }
}
显示全部例外情况谁告诉不要使用EF?!ORM更容易测试…@gerdi嗨,你不会发现我对此有任何争论。只是我的IT老板坚持他的老方法{噩梦}@haim770我抓拍了一个屏幕,我希望这样可以吗?
public class Filters
{
public string FilterType { get; set; }
public int Key { get; set; }
}