Все поля модели являются обязательными, но мне нужны некоторые поля для обновления Asp.net MVC - PullRequest
0 голосов
/ 18 апреля 2019

Я хочу обновить некоторые поля, но модель обязательна для заполнения. поэтому, когда он проверяет ModelState в методе post, который возвращает false, потому что все поля являются обязательными. Так, как я могу обновить два поля, используя эту модель или любым другим способом.

Модель

public class User
{
    [Required(ErrorMessage ="The Name field is required")]       
    public string FullName { get; set; }
    [Required]       
    public string UserName { get; set; }
    [Required]
    public string Email { get; set; }
    [Required]
    public string Phone { get; set; }
    [Required]
    public string Password { get; set; }
}

View

@using (Html.BeginForm("action", "controller", FormMethod.Post))
{                       
<div class="row">
    <div class="col-sm-6">
        <div class="form-group">
            <label class="control-label">Your Name</label>
            @Html.TextBoxFor(model => model.FullName, new { @class = "form-control", placeholder = "Your Name" })
            @Html.ValidationMessageFor(model => model.FullName, "", new { @class = "text-danger" })
        </div>
    </div>
    <div class="col-sm-6">
        <div class="form-group">
            <label class="control-label">User Name</label>
            @Html.TextBoxFor(model => model.UserName, new { @class = "form-control", placeholder = "User Name" })
            @Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" })
        </div>
    </div>
</div>
  }

Контроллер

    public ActionResult Name(int id)
    {
       var SingleUserDetails = DB.Users.Where(x => x.id == id).FirstOrDefault();
       return View(SingleUserDetails);
    }


    [HttpPost]
    public ActionResult Name(User userobject)
    {
        if(ModelState.IsValid)
        {

        }
        return View();
    }

1 Ответ

2 голосов
/ 18 апреля 2019

Не следует использовать модель в методе Post контроллера.Вы должны создать ViewModel только с полями, которые приходят из вида.

public class UserVM
{
public int Id {get; set; }
public string FullName { get; set; }
public string UserName { get; set; }
}

После этого вам нужно найти пользователя, которого вы хотите обновить, и применить новые настройки

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