.Net MVC: Как с откорректировать поля
в post запросе, на Другую модель данных?

Как можно отправить форму в POST запросе, на другую модель данных (не та котарая во view)?

У меня есть UserModel и FilterRequest модели. Чтобы отфильтровать данные мне нужно послать Post запрос на IndexFilter с FilterRequest моделью фильтраций?

Помогите Пожалуйста как мне это сделать?

View/User/Index.cshtml

@model UserModel

@using (Html.BeginForm("IndexFilter", "User", FormMethod.Post))
{
    <input type="hidden" name ="pageNumber" value="@Model.PaginationModel.PageNumber"/>

    <div class="form-row">
        <div class="col">
            <label class="control-label">First Name</label>
            @Html.TextBoxFor(m => m.FilterData.FirstName, new { @class = "form-control" })
        </div>
        <div class="col">
            <label class="control-label">Last Name</label>
            @Html.TextBoxFor(m => m.FilterData.LastName, new { @class = "form-control" })
        </div>
        <input type="submit" value="Filter" class="btn btn-primary" />
    </div>
}

UserController.cs

[HttpPost]
public IActionResult IndexFilter([FromBody] FilterRequest request)
{

}

UserModel.cs

public class UserModel
{
    public IList<User> Users{ get; set; }
    
    public PaginationModel PaginationModel { get; set; }

    public FilterData FilterData { get; set; }
}

FilterRequest.cs

public class FilterRequest
{
    public int PageNumber { get; set; } = 1;

    public FilterData FilterData { get; set; }
}

На сервер уходит Post запрос, с Form Data pageNumber=1&FilterData.FirstName=&FilterData.LastName=Nikita&__RequestVerificationToken=Token Сервер ответил 415.


Ответы (1 шт):

Автор решения: Геннадий Круглов

Можно создать модель данных соответствующую приходящему в котроллер запросу, а потом смапить её в методе контроллера на ту модель которая вам нужна.

Чтобы убедиться, что на стороне клиента формируется подходящий запрос, можно воспользоваться инструментами для разработчика встроенными в браузер. Например в Chrome это вкладка Network инструмента DevTools, там можно поставить галочку Preserve log, сделать запрос и выбрать его в списке, а затем сравнить содержимое и структуру запроса с моделью на стороне сервера.введите сюда описание изображения

→ Ссылка