2012-10-08 25 views
1

我有儀式模型,它有id,日期。如何獲取模型中的數據列表?

我想得到日期爲< =今天的儀式。

這是我在服務類中的函數。

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); 

      } 

我不知道如何給模型賦值。

+1

要分配哪種類型的值? –

+0

ceremony_id和ceremony_date.there有int和dateTime。 – user1348351

回答

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()); 
    } 
} 
0

您只需將值分配給模型即時內部的foreach循環。例如,

model.id = c.id; 
model.date=c.date; 
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) 
{ 
    ... 
} 

我也想你需要c糾正你的邏輯。而不是>=使用<=

var query = from c in _ceremonyRepository.Table 
      where c.ceremony_date <= currentDate 
      select c; 
相關問題