我有一个表单,用户可以在其中创建新员工。我想将userid存储在提交表单的数据库中。使用在MVC中提交表单的用户标识更新数据库
这是我创建新条目控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Employee employee)
{
if (ModelState.IsValid)
{
db.Employee.Add(employee);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(employee);
}
我有两个表。一个用于员工,另一个用于用户。正如你可以看到我在我的员工表中有用户ID,我想存储提交表单的用户ID。我能够将表单值保存在我的员工表中,但无法获取用户ID。任何想法?
public class UsersContext : DbContext
{
public UsersContext()
: base("DefaultConnection")
{
}
public DbSet<UserProfile> UserProfiles { get; set; }
public DbSet<Employee> Employee { get; set; }
}
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
}
[Table("Employee")]
public class Employee
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int EmployeeID { get; set; }
public string EmployeeName { get; set; }
public int DepartmentID { get; set; }
public string Department { get; set; }
public int UserId { get; set; }
}
,这是我的登录表单:
<section id="loginForm">
<h2>Use a local account to log in.</h2>
@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Log in Form</legend>
<ol>
<li>
@Html.LabelFor(m => m.UserName)
@Html.TextBoxFor(m => m.UserName)
@Html.ValidationMessageFor(m => m.UserName)
</li>
<li>
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password)
@Html.ValidationMessageFor(m => m.Password)
</li>
<li>
@Html.CheckBoxFor(m => m.RememberMe)
@Html.LabelFor(m => m.RememberMe, new { @class = "checkbox" })
</li>
</ol>
<input type="submit" value="Log in" />
</fieldset>
}
</section>
那么,在你的窗体中是否存在像'这样的字段? – 2014-09-13 10:23:13
@asdf_enel_hak不。用户已登录。因此,我想要获取存储在UserProfile表中的用户标识。 – sensahin 2014-09-13 10:25:31