1

C#のMVC4とEntityFramework4.1を使用して最初のMVCサイトを構築しています。標準の「追加」、「編集」、「詳細」、および「削除」オプションを備えたアイテムのリストを表示するモデルがあります。

モデルにリンクされているデータベースには「ユーザー名」の列があり、私のアプリケーションには現在、Create.cshtmlファイルの次のコードを使用してユーザーがユーザー名を入力するためのテキストボックスが表示されています。

    <div class="editor-field">
        @Html.EditorFor(model => model.UserName)
        @Html.ValidationMessageFor(model => model.UserName)
    </div>

User.Identity.Name(例:DOMAIN \ user)の値がテキストボックスに自動入力されるように、またはさらに良いことに、ユーザーにそれが発生していることを表示せずに保存されるように、これを変更しようとしています。

これを達成するための比較的痛みのない方法はありますか?

編集:「作成」セクションの私のコントローラーコードは現在次のようになっています:

    public ActionResult Create(Occurrence occurrence)
    {
        if (ModelState.IsValid)
        {
            db.Occurrences.Add(occurrence);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        ViewBag.EmployeeID = new SelectList(db.Employees, "EmployeeID", "EmployeeName", occurrence.EmployeeID);
        return View(occurrence);
    }
4

1 に答える 1

1

コントローラでユーザー名を設定できます

public ActionResult Create()
{
    string username = Environment.UserName // or however you get it
    User user = new User{UserName = username};
    return View(user);
}

別のオプションは、ビューでそれを処理することです

@Html.ValidationMessageFor(model => model.UserName, new{@Value = Environment.UserName})
于 2012-11-12T18:11:36.293 に答える