Я получаю сообщение об ошибке «Оператор» == «нельзя применить к операндам типа« строка »и« int? »в этой строке
.FirstOrDefaultAsync(m => m.Id == id);
Пока что я не пробовал ничего, кроме этого метода.
public class EditProfileController : Controller
{
private readonly ApplicationDbContext db;
private object _context;
public EditProfileController(ApplicationDbContext Db)
{
db = Db;
}
public IActionResult Index()
{
List<ApplicationUser> listdata = db.Users
.Select(user => new ApplicationUser()
{
Id = user.Id,
UserName = user.UserName,
NormalizedUserName = user.NormalizedUserName,
Email = user.Email
// Add the remainder properties
}).ToList();
return View(listdata);
}
[HttpGet]
public ActionResult Edit(string id)
{
//Get user and return the Edit View
ApplicationUser user = db.Users.Where(u => u.Id == id)
.Select(u => new ApplicationUser()
{
Id = u.Id,
UserName = u.UserName,
NormalizedUserName = u.NormalizedUserName,
Email = u.Email
// Add the remainder properties
}).FirstOrDefault();
return View(user);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(ApplicationUser listdata)
{
if (ModelState.IsValid)
{
db.Entry(listdata).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(listdata);
}
public async Task<IActionResult> Delete(int? id)
{
if (id == null)
{
return NotFound();
}
var user = await db.Users
.FirstOrDefaultAsync(m => m.Id == id);
if (user == null)
{
return NotFound();
}
return View(user);
}
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
{
var user = await db.Users.FindAsync(id);
db.Users.Remove(user);
await db.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
}
Мои ожидаемые результаты, когда я нажимаю на ссылку Удалить на странице просмотра, что этопросит подтвердить удаление, а затем, когда я нажимаю Да или Нет, он выполняет действие DeleteConfirmed.Что мне нужно, чтобы исправить эту ошибку?