【发布时间】:2020-08-06 18:50:06
【问题描述】:
我很难将带有 linq 查询的分组数据表添加到模型属性中。
这是我的模型
public class Ports
{
public String city { get; set; }
}
这是我的控制器
public ActionResult ShipSchedule()
{
DatabaseContext db = new DatabaseContext();
var Ports = new Ports();
Ports.city = from m in db.ports_data group m by new { m.city } into n select new { n.Key.city };
return View();
}
我已经将模型部分替换为List<> 并再次替换为另一个,但是这个部分
Ports.city = (from m in db.ports_data group m by new { m.city } into n select new { newcity = n.Key.city }).ToList();
还是告诉我那部分cannot convert type 'system.collections.generic.list<<anonymous type: string newcity>>' to 'system.collections.generic.list<string>'
有人知道正确的方法吗?
还有一件事,如果有人有更好的方法,我想在下拉列表中显示该部分
这是我的看法
@model example.Models.Ports
@{
List<SelectListItem> listItems = new List<SelectListItem>();
foreach (var mod in Model.city)
{
listItems.Add(new SelectListItem
{
Text = mod.ToString(),
Value = mod.ToString()
});
}
}
@Html.DropDownListFor(model => model.selected, listItems, "-- Select item --")
【问题讨论】:
-
您可能想要
from m in db.ports_data group m by new { m.city } into n select new SelectListItem { Text = n.Key.city, Value = n.Key.city }.ToList()之类的东西。虽然,如果你只想要独特的城市,你可以做db.ports_data.Select(m => m.city).Distinct().Select(n => new SelectListItem { Text = n.Key.city, Value = n.Key.city }.ToList()) -
你说得对,我不知道
.Distinct()可以删除重复的元素。顺便说一句,我是新手,非常感谢您
标签: c# asp.net asp.net-mvc linq linq-to-sql