Достаточно просто, моя система позволяет пользователю, вошедшему в систему, затем добавлять дополнительные сведения, однако, когда они вводят FullName, PostCode и MobileNumber, в базе данных сохраняется только последний MobileNumber. Остальные 2 значения показывают NULL независимо от того, что я ввожу. Я также вижу, что MobileNumber прошел успешно, но ничего для другого 2. Я также понимаю, что использование hiddenfor небезопасно и предназначено только для быстрого тестирования.
Вот мой код минимизировано для удобства чтения;
Контроллер
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Premium([Bind(Include = "Id,FullName,PostCode,Email,EmailConfirmed,PasswordHash,SecurityStamp,PhoneNumber,PhoneNumberConfirmed,TwoFactorEnabled,LockoutEndDateUtc,LockoutEnabled,AccessFailedCount,UserName,SignUpDate")] ApplicationUser applicationUser)
{
if (ModelState.IsValid)
{
db.Entry(applicationUser).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("../Club/Payment");
}
return View(applicationUser);
}
Просмотр
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.Id)
@Html.HiddenFor(model => model.Email)
@Html.HiddenFor(model => model.EmailConfirmed)
@Html.HiddenFor(model => model.PasswordHash)
@Html.HiddenFor(model => model.SecurityStamp)
@Html.HiddenFor(model => model.PhoneNumberConfirmed)
@Html.HiddenFor(model => model.TwoFactorEnabled)
@Html.HiddenFor(model => model.LockoutEndDateUtc)
@Html.HiddenFor(model => model.LockoutEnabled)
@Html.HiddenFor(model => model.AccessFailedCount)
@Html.HiddenFor(model => model.UserName)
@Html.HiddenFor(model => model.SignUpDate)
<p>Full Name</p>
@Html.EditorFor(model => model.FullName, new { htmlAttributes = new { @class = "form-control" } })
<p>Mobile Number</p>
@Html.EditorFor(model => model.PhoneNumber, new { htmlAttributes = new { @class = "form-control" } })
<p>Postcode</p>
@Html.EditorFor(model => model.PostCode, new { htmlAttributes = new { @class = "form-control" } })
<div class="TextBox" style="margin-left:10px;padding-bottom:15px;"><input style="border-radius:6px;" class="RegisterButton" type="submit" value="Continue to payment"></div>
}
Атрибуты Изображение строки прерывания для пользователя приложения
В изображение вы можете видеть, что PhoneNumber проходит нормально, но FullName и PostCode показывают Null