如何将User.Identity.Name自动填充到MVC 4 Intranet表单中

时间:2012-11-12 18:06:22

标签: c# asp.net-mvc-4 entity-framework-4.1

我正在使用C#和Entity Framework 4.1中的MVC 4构建我的第一个MVC站点。我有一个模型,显示标准“添加”,“编辑”,“详细信息”和“删除”选项的项目列表。

链接到模型的数据库有一个“Username”列,我的应用程序当前显示一个文本框,供用户通过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);
    }

1 个答案:

答案 0 :(得分: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})