提问人:bootsy 提问时间:6/27/2019 更新时间:6/27/2019 访问量:46
.Net Core 控制器编辑 ActionResult 错误
.Net Core Controller Edit ActionResult errors
问:
在 HttpGet 上。Select(user => HttpGet 的新 AspNetUser()' 行 我得到“无法在此范围内声明名为”user“的本地或参数,因为该名称在封闭的本地范围内用于定义本地或参数”
在 HttpPost 上,我在 Listdata listdata 行上收到错误,找不到类型或命名空间名称“Listdata”(是否缺少 using 指令或程序集引用?
[HttpGet]
public ActionResult Edit(string id)
{
//Get user and return the Edit View
AspNetUser user = db.Users.Where(u => u.Id == id)
.Select(user => new AspNetUser()
{
Id = user.Id,
UserName = user.UserName,
NormalizedUserName = user.NormalizedUserName,
Email = user.Email,
NormalizedEmail = user.NormalizedEmail,
EmailConfirmed = user.EmailConfirmed,
PasswordHash = user.PasswordHash,
SecurityStamp = user.SecurityStamp,
ConcurrencyStamp = user.ConcurrencyStamp,
PhoneNumber = user.PhoneNumber,
PhoneNumberConfirmed = user.PhoneNumberConfirmed,
TwoFactorEnabled = user.TwoFactorEnabled,
LockoutEnd = user.LockoutEnd,
LockoutEnabled = user.LockoutEnabled,
AccessFailedCount = user.AccessFailedCount
// Add the remainder properties
}).FirstOrDefault();
return View(user);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult
Edit([Bind("Id,Username,NormalizedUserName,Email,NormalizedEmail,
EmailConfirmed,PasswordHash,SecurityStamp,")] Listdata listdata)
{
if (ModelState.IsValid)
{
db.Entry(listdata).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(listdata);
}
我的期望是,当我单击“编辑视图”页面中的“编辑”链接时,它将转到我想要更新其信息的用户,并将该更改保存在帖子上。
答:
0赞
Tony Ngo
6/27/2019
#1
您有该错误,因为您在同一范围内定义了 2 个用户变量AspNetUser user
.Select(user
因此,将您的代码更改为此代码
AspNetUser userInfo = db.Users.Where(u => u.Id == id) // here
.Select(user => new AspNetUser()
{
Id = user.Id,
UserName = user.UserName,
NormalizedUserName = user.NormalizedUserName,
Email = user.Email,
NormalizedEmail = user.NormalizedEmail,
EmailConfirmed = user.EmailConfirmed,
PasswordHash = user.PasswordHash,
SecurityStamp = user.SecurityStamp,
ConcurrencyStamp = user.ConcurrencyStamp,
PhoneNumber = user.PhoneNumber,
PhoneNumberConfirmed = user.PhoneNumberConfirmed,
TwoFactorEnabled = user.TwoFactorEnabled,
LockoutEnd = user.LockoutEnd,
LockoutEnabled = user.LockoutEnabled,
AccessFailedCount = user.AccessFailedCount
// Add the remainder properties
}).FirstOrDefault();
return View(userInfo);
0赞
bsod_
6/27/2019
#2
您在这里声明了两次“用户”——
AspNetUser user = db.Users.Where(u => u.Id == id)
和这里
.Select(user => new AspNetUser()
在 HttpPost 上,我在 Listdata listdata 行上收到错误,找不到类型或命名空间名称“Listdata”(是否缺少 using 指令或程序集引用?
正如错误所述,您缺少该类的 using 语句。您需要创建 Listdata 或添加对它所在的项目的引用。
评论