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

            }

モデルに値を割り当てる方法がわかりません。

4

3 に答える 3

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());
    }
}
于 2012-10-08T05:42:22.067 に答える
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;
于 2012-10-08T05:42:26.730 に答える
0

foreachループ内のモデルインスタントに値を割り当てるだけです。例えば、

model.id = c.id;
model.date=c.date;
于 2012-10-08T05:41:58.557 に答える