具体的には、データベースには、現在ログインしているユーザーの電子メールを格納するusernameなどのフィールドが含まれている場合があります。ユーザーが新しいアイテムを作成するとき、私は自動的にUser.Identity.GetUserName()
のようなコマンドでユーザー名を取得し、それを入力することなく自動的にユーザー名フィールドに入力したいと考えています(しかし、入力する他のフィールドがあるかもしれませんフォームで)。これを行う最善の方法は何ですか?EFを使用したASP.NET MVCでは、モデルの各列をフォームに入力するように求めることなく、ユーザーがより多くのデータを作成できるようにするにはどうすればよいですか?
コントローラは、次のようになります。あなたには、いくつかの基本的な情報が事前にされたモデルに渡すことができます作成アクションで
//GET: Reservations/Create
public ActionResult Create()
{
return View();
}
// POST: Reservations/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ID,Username,StartDate,EndDate,Destination,Department")] Reservation reservation)
{
if (ModelState.IsValid)
{
db.Reservations.Add(reservation);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(reservation);
}
フォームでは実行しないでください。それは偽装することができます。変更を保存する前に、コントローラーの情報でモデルを更新してください。あなたが何らかの認証を要求しているとすれば、情報を簡単に利用できるようになります。 – dbugger