我正在使用ASP.NET Core 2.1,并试图创建一个用户。但是,当我运行Web应用程序并尝试创建用户时,Id返回0。我曾尝试在剃刀视图中使用隐藏字段,但ID仍返回零且未添加用户。
这是我的用户类别:
public class User
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Username { get; set; }
public int DepartmentID { get; set; }
public int FacultyID { get; set; }
public string Country { get; set; }
public string State { get; set; }
public string LGA { get; set; }
public string Email { get; set; }
public string PhoneNo { get; set; }
public string Grade { get; set; }
public Department Department { get; set; }
public Faculty Faculty { get; set; }
}
这是控制器中的create方法:
[HttpGet]
public async Task<IActionResult> Create()
{
var fac = await _faculty.GetAll();
var dept = await _department.GetAll();
var facList = fac.Select(f => new SelectListItem()
{
Value = f.facultyName.ToString(),
Text = f.facultyName
});
var deptList = dept.Select(d => new SelectListItem()
{
Value = d.deptName.ToString(),
Text = d.deptName
});
ViewBag.fac = facList;
ViewBag.dept = deptList;
return View();
}
[HttpPost]
public async Task<IActionResult> Create(User user)
{
var createUser = await _userService.AddAsync(user);
if (createUser)
{
Alert("User created successfully.", NotificationType.success);
return RedirectToAction("ListUsers", "User");
}
else
{
Alert("User not created!", NotificationType.error);
}
return View();
}
这是添加用户的剃刀视图:
<form asp-controller="User" method="post">
<input asp-for="Id" name="Id" type="hidden" />
<div class="position-relative row form-group">
<label asp-for="FirstName" class="col-sm-2 col-form-label">First Name</label>
<div class="col-sm-10"><input asp-for="FirstName" type="text" class="form-control"></div>
<span asp-validation-for="FirstName"></span>
</div>
<div class="position-relative row form-group">
<label asp-for="LastName" class="col-sm-2 col-form-label">Last Name</label>
<div class="col-sm-10"><input asp-for="LastName" type="text" class="form-control"></div>
<span asp-validation-for="LastName"></span>
</div>
<div class="position-relative row form-group">
<label asp-for="Username" class="col-sm-2 col-form-label">Username</label>
<div class="col-sm-10"><input asp-for="Username" type="text" class="form-control"></div>
<span asp-validation-for="Username"></span>
</div>
<div class="position-relative row form-group">
<label asp-for="Country" class="col-sm-2 col-form-label">Country</label>
<div class="col-sm-10"><input asp-for="Country" type="text" class="form-control"></div>
<span asp-validation-for="Country"></span>
</div>
<div class="position-relative row form-group">
<label asp-for="State" class="col-sm-2 col-form-label">State</label>
<div class="col-sm-10">
<select asp-for="State" class="mb-2 form-control" onchange="toggleLGA(this);" name="state" id="state">
<option value="" selected="selected">- State -</option>
<option value="Abia">Abia</option>
<option value="Adamawa">Adamawa</option>
<option value="AkwaIbom">AkwaIbom</option>
<option value="Anambra">Anambra</option>
<option value="Bauchi">Bauchi</option>
<option value="Bayelsa">Bayelsa</option>
<option value="Benue">Benue</option>
<option value="Borno">Borno</option>
<option value="Cross River">Cross River</option>
<option value="Delta">Delta</option>
<option value="Ebonyi">Ebonyi</option>
<option value="Edo">Edo</option>
<option value="Ekiti">Ekiti</option>
<option value="Enugu">Enugu</option>
<option value="FCT">FCT</option>
<option value="Gombe">Gombe</option>
<option value="Imo">Imo</option>
<option value="Jigawa">Jigawa</option>
<option value="Kaduna">Kaduna</option>
<option value="Kano">Kano</option>
<option value="Katsina">Katsina</option>
<option value="Kebbi">Kebbi</option>
<option value="Kogi">Kogi</option>
<option value="Kwara">Kwara</option>
<option value="Lagos">Lagos</option>
<option value="Nasarawa">Nasarawa</option>
<option value="Niger">Niger</option>
<option value="Ogun">Ogun</option>
<option value="Ondo">Ondo</option>
<option value="Osun">Osun</option>
<option value="Oyo">Oyo</option>
<option value="Plateau">Plateau</option>
<option value="Rivers">Rivers</option>
<option value="Sokoto">Sokoto</option>
<option value="Taraba">Taraba</option>
<option value="Yobe">Yobe</option>
<option value="Zamfara">Zamafara</option>
</select>
</div>
</div>
<div class="position-relative row form-group">
<label asp-for="LGA" class="col-sm-2 col-form-label">LGA</label>
<div class="col-sm-10">
<select asp-for="LGA" name="lga" id="lga" class="mb-2 form-control select-lga" required>
<option value="" selected="selected">- Local Government -</option>
</select>
</div>
</div>
<div class="position-relative row form-group">
<label asp-for="Faculty" class="col-sm-2 col-form-label">Faculty</label>
<div class="col-sm-10">
<select class="mb-2 form-control" asp-for="Faculty" asp-items="@ViewBag.fac">
<option>Faculty</option>
</select>
</div>
<span asp-validation-for="Faculty"></span>
</div>
<div class="position-relative row form-group">
<label asp-for="Department" class="col-sm-2 col-form-label">Department</label>
<div class="col-sm-10">
<select class="mb-2 form-control" asp-for="Department" asp-items="@ViewBag.dept">
<option>Department</option>
</select>
</div>
<span asp-validation-for="Department"></span>
</div>
<div class="position-relative row form-group">
<label asp-for="Email" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10"><input asp-for="Email" type="email" class="form-control"></div>
<span asp-validation-for="Email"></span>
</div>
<div class="position-relative row form-group">
<label asp-for="PhoneNo" class="col-sm-2 col-form-label">Phone Number</label>
<div class="col-sm-10"><input asp-for="PhoneNo" type="text" class="form-control"></div>
<span asp-validation-for="PhoneNo"></span>
</div>
<div class="position-relative row form-group">
<label asp-for="Grade" class="col-sm-2 col-form-label">Grade</label>
<div class="col-sm-10"><input asp-for="Grade" type="text" class="form-control"></div>
<span asp-validation-for="Grade"></span>
</div>
<div class="row">
<div class="position-relative row form-check">
<div class="col-sm-10 offset-sm-2">
<button asp-action="Create" class="btn btn-secondary">Submit</button>
</div>
</div>
</div>
</form>
我将非常感谢我能获得的所有帮助。