我正在使用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);
}
答案 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})