В очень базовом проекте по умолчанию я пытаюсь добавить представление редактирования для applicationuser в контроллере управления. Вот мои методы контроллера:Почему мой id null в asp.net mvc
// GET: /Manage/Edit/1
public async Task<ActionResult> Edit()
{
var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
if (user == null)
{
return HttpNotFound();
}
return View(user);
}
// POST: /Manage/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Edit([Bind(Include = "Email,Id,FirstName,LastName,Phone,Company,Description,Website")] ApplicationUser formuser, string id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var user = await UserManager.FindByIdAsync(id);
user.Email = formuser.Email;
user.FirstName = formuser.FirstName;
user.LastName = formuser.LastName;
user.Phone = formuser.Phone;
user.Company = formuser.Company;
user.Description = formuser.Description;
user.Website = formuser.Website;
if (ModelState.IsValid)
{
//Update the user details
await UserManager.UpdateAsync(user);
return RedirectToAction("Edit");
}
else
{
return View();
}
}
мой взгляд использует модель applicationuser, и я считаю, что я продлил applicationuser правильно (только добавил несколько полей). Однако, когда я отправляю форму, я получаю плохой запрос с очень небольшими подробностями, но я предполагаю, что мой идентификатор равен null, и он набрасывает нулевую проверку. У меня почти идентичный код, работающий в другом проекте, и я не могу в жизни меня найти какую-либо разницу.
Я думаю, что это достаточно информации, но я действительно не понимаю, что здесь происходит.
', но я предполагаю, что мой идентификатор нулевой' - шаг 1. использовать отладчик + подтвердить ваше предположение. – Jamiec
Итак, вы хотите, чтобы 'id' имел значение, так что вы уверены, что передаете параметр' id' в строке запроса? Нам нужно будет увидеть код вызова/html – musefan
в вашем представлении для вашей страницы редактирования .. что произойдет, если вы поместите '@ Html.HiddenFor (model.ID)'? –