Редактирование строки базы данных через представление приводит к нулевым значениям только для 2/3 значений - PullRequest
0 голосов
/ 07 мая 2020

Достаточно просто, моя система позволяет пользователю, вошедшему в систему, затем добавлять дополнительные сведения, однако, когда они вводят 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...