我正在尝试通过其Id获取应用程序用户,但它始终返回null。我需要它在编辑视图中查看其详细信息,但因为它为null,我的编辑视图将所有字段都清空。
这是我的控制者:
public ActionResult Edit(string id) {
ApplicationDbContext db = new ApplicationDbContext();
ApplicationUser user = db.Users.Find(id);
return View(user);
}
[HttpPost]
public ActionResult Edit(ApplicationUser user) {
if (ModelState.IsValid) {
ApplicationDbContext db = new ApplicationDbContext();
db.Entry(user).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
return View(user);
}
问题是“db.Users.Find(id);”返回null。而不是如果我执行以下代码一切正常:
public ActionResult Edit(string id) {
ApplicationDbContext db = new ApplicationDbContext();
ApplicationUser user = new ApplicationUser();
user.Email = "test@gmail.com";
//(...)
return View(user);
}
你能告诉我这可能出现什么问题吗?
提前感谢您的帮助。
更新 谢谢你们的评论。正如你们中的一些人指出的那样,原因实际上非常简单 - 我正在搜索数据库中不存在的id。但是我不知道它是怎么回事。当我在一个表上显示我的id(检查下面的代码)时,id与我在SQL Object Explorer上的表上看到的不同。怎么会发生这种情况?其他所有信息(姓名和电子邮件)都是正确的。
@model IEnumerable<FMS.Models.ApplicationUser>
<table class="table table-striped table-hover ">
<thead>
<tr>
<th>Name</th>
<th>E-mail</th>
<th>ID</th>
</tr>
</thead>
<tbody>
@foreach (var user in Model) {
<tr>
<td>@user.Name</td>
<td>@user.Email</td>
<td>@user.Id</td>
<td class="pull-right">
@Html.ActionLink("Edit", "Edit", new { id = user.Id})
</td>
</tr>
}
</tbody>
</table>
更新2: 我只是注意到每次刷新视图时,ID列上的id都不同!可能导致这种情况的原因是什么?
答案 0 :(得分:0)
您可以写下以下方式:
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ avsbe-web-ca ---
[INFO] Deleting /root/.jenkins/workspace/CA-16_PORTAL_BE-NG-WEB/16-PORTAL_BE/avsbe-web-ca/target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ avsbe-web-ca ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 4 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ avsbe-web-ca ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 40 source files to /root/.jenkins/workspace/CA-16_PORTAL_BE-NG-WEB/16-PORTAL_BE/avsbe-web-ca/target/classes
Build step 'Invoke top-level Maven targets' marked build as failure
Finished: FAILURE
答案 1 :(得分:-2)
您可以找到用户:
db.Users.FirstOrDefault(u => u.Id.Equals(id))
如果它返回null
,你可能没有这样的用户