1

私は ASP.NET 構成を使用し、役割を持つユーザーをいくつか作成しました。create/edit/showテーブル内の詳細データへのコントローラーを作成しました。これが私の作成フォームの外観です: " " という名前の 2 つのドロップダウンリストがありCategories、" Users"." Categories" はユーザーによって選択されますが、これは問題ありません。" Users" は、任意のユーザーが別のユーザーを選択して挿入するものです。テーブル。そんなことはあってはなりません。これが私の質問です。 ドロップダウンリスト " Users" を削除して、ログインしたユーザー名を自動的にテーブルに挿入するにはどうすればよいですか? ---A さんが B さんのカテゴリを追加するべきではありません!--- ビューでは、ユーザーがドロップダウンリストに入れられる方法は次のとおりです。

@Html.DropDownList("Userid",String.Empty)

モデル コードと、必要に応じて詳細なコントローラー コードを共有できます。

前もって感謝します!

これが私の作成方法です:

   public ActionResult Create(icerik icerik)
        {
            if (User != null && User.Identity != null && User.Identity.IsAuthenicated)
{
    string userName = User.Identity.Name;
    User user = db.Users.First(u => u.UserName == userName);
}

            if (ModelState.IsValid)
            {
                db.icerik.Add(icerik);
                db.SaveChanges();
                return RedirectToAction("Index");  
            }

            ViewBag.Kategorid = new SelectList(db.Kategoriler, "Id", "Adi", icerik.Kategorid);
           // ViewBag.Userid = new SelectList(db.Users, "UserId", "UserName", icerik.Userid);

            ViewBag.Userid = new SelectList(db.Users, "UserId", "UserName", icerik.Userid);
            return View(icerik);
        }

ビューでそれを呼び出す方法は次のとおりです。

@Html.DropDownList("Userid", String.Empty) 

コントローラーでセッションを使用してログインしたユーザーを取得するにはどうすればよいですか?

4

3 に答える 3

0

ビューでは、コントローラーで行うのと同じように、次を使用してユーザー名を取得できます

@( User.Identity.Name )

その後、削除できます

ViewBag.Userid = new SelectList(db.Users, "UserId", "UserName", icerik.Userid);

コントローラーからと

@Html.DropDownList("Userid", String.Empty) 

ビューから

于 2013-10-10T11:11:26.953 に答える
0

ログインしたユーザーのデータを Cookie またはセッションに保存できます。必要に応じて、Cookie またはセッションから簡単にデータを取得できます。フロントエンドでユーザーのドロップダウン リストを表示する必要はありません。バックエンドから、セッションまたは Cookie からデータを取得してデータベースに保存できます。これにより、適切なユーザーを選択するという問題が解決されると思います。

于 2013-10-10T09:16:46.230 に答える