我有仪式模型,它有id,date。
我想参加日期< =今天的仪式。
这是我在服务类中的功能。
public virtual IList<Ceremony> GetAllCeremonyByDate(DateTime currentDate)
{
var query = from c in _ceremonyRepository.Table
where c.ceremony_date >= currentDate
select c;
var countries = query.ToList();
return countries;
}
这是我的控制器。
public ActionResult DetailForm()
{
Ceremony model = new Ceremony();
var ceremonyDate = _ceremonyService.GetAllCeremonyByDate(DateTime.Now);
if (ceremonyDate.Count == 0)
return Content("No ceremony can be loaded");
if (ceremonyDate.Count > 0)
{
foreach (var c in ceremonyDate)
// My problem
}
return View(model);
}
我不知道如何为模型赋值。
答案 0 :(得分:1)
视图期待什么类型?
如果它是IEnumerable<Ceremony>
(或类似的东西),那么您的控制器只需要:
public ActionResult DetailForm()
{
var model = _ceremonyService.GetAllCeremonyByDate(DateTime.Now);
if (model.Count == 0)
{
return Content("No ceremony can be loaded");
}
else
{
return View(model);
}
}
如果视图需要Ceremony
,那么您需要决定发回哪一个。如果您只想要第一个有效的那个,那么您可以执行以下操作:
public ActionResult DetailForm()
{
var ceremonies = _ceremonyService.GetAllCeremonyByDate(DateTime.Now);
if (ceremonies.Count == 0)
{
return Content("No ceremony can be loaded");
}
else
{
return View(ceremonies.First());
}
}
答案 1 :(得分:1)
由于您要返回IList<Ceremony>
视图,因此应接受与此类型兼容的模型。例如:
<强>控制器强>
var ceremonies = _ceremonyService.GetAllCeremonyByDate(DateTime.Now);
if (ceremonies.Count == 0)
{
return Content("No ceremony can be loaded");
}
else
{
return View(ceremonies);
}
查看强>
@model IEnumerable<Ceremony>
然后你可以在这样的视图中列举你的仪式:
@foreach (var ceremony in Model)
{
...
}
我还认为你需要纠正你的逻辑。而不是>=
使用<=
。
var query = from c in _ceremonyRepository.Table
where c.ceremony_date <= currentDate
select c;
答案 2 :(得分:0)
您只需将值分配给foreach循环内的模型瞬间即可。例如,
model.id = c.id;
model.date=c.date;