1

我正在使用 C# 中的 MVC 4 和 Entity Framework 4.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 回答