1

コントローラに次のコードがあります。

// GET: /Review/Create
public ActionResult Create()
    {
        var userGames = db.tblGames.Where(g => g.UserName == User.Identity.Name);
        ViewBag.GameIDFK = new SelectList(userGames, "GameID", "GameName");
        return View(new tblReview { UserName = @User.Identity.Name });
    } 

// POST:/ Review / Create

    [HttpPost]
    public ActionResult Create(tblReview tblreview)
    {
        if (ModelState.IsValid)
        {
            db.tblReviews.Add(tblreview);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        var userGames = db.tblGames.Where(g => g.UserName == User.Identity.Name);
        ViewBag.GameIDFK = new SelectList(userGames, "GameID", "GameName");
        return View(new tblReview { UserName = @User.Identity.Name });
    }

そして、このコード行を追加したいと思います。

        return View(new tblReview { Posted = DateTime.Now });

しかし、コードを組み合わせる方法がわかりません。Ifステートメントを試しましたが、アプリケーションが壊れてしまい、どこでもエラーが発生していました。

これらを一緒にコードに追加したい理由は、レビューが書かれたときに、視聴者がレビューが投稿された日付を見ることができるようにするためです。データベーステーブルにposted属性があり、そのモデルは次のようになります。

namespace TestWebSite.Models
{
    using System;
    using System.Collections.Generic;

    public partial class tblReview
    {
        public int ReviewID { get; set; }
        public string Recomendation { get; set; }
        public string AvoidOrBuy { get; set; }
        public string Score { get; set; }
        public System.DateTime Posted { get; set; }
        public int GameIDFK { get; set; }
        public string UserName { get; set; }

        public virtual tblGame tblGame { get; set; }
    }
}

ありがとうございました

追加情報が必要な場合は私に聞いてください

4

1 に答える 1

1

リレーションフォームtblReviewとを正確に理解していないNewsItemと思いますが、ViewModelに設定せずにその情報を公開したい場合は、ViewBagを使用するしかないと思います。

何かのようなもの

ViewBag.NewsItem = new NewsItem() { Posted = DateTime.Now };

次に、ビューからアクセスします。

私は正直に言って、ビューに必要なすべての情報を保持する特定のビューモデルを作成しますが、他の方法がない場合は、これが代替手段であると思います。

アップデート

あなたが行った変更の後、なぜこれが機能しないのかわかりません

return View(new tblReview { UserName = @User.Identity.Name, Posted = DateTime.Now });
于 2012-04-14T14:43:06.993 に答える