Как передать данные из представления в конечную точку поста контроллера? - PullRequest
0 голосов
/ 24 июня 2019

Я могу просматривать данные из базы данных через ViewModel следующим образом:

[HttpGet] 
[Authorize]
public ActionResult Rent(int id)
{
    Helper helper = new Helper();

    var cars = _context.Cars.Find(id);
    var useremail = User.Identity.Name;
    var username = helper.GetName(User.Identity.GetUserId());

    var viewmodel = new RentalViewModel
    {
        UserName = username,
        UserEmail = useremail,
        CarMake = cars.Make,
        CarMod = cars.Mod,
        CarPicture = cars.Picture,
        CarPrice = cars.Price,
        CarId = cars.Id
    };

    return View(viewmodel);
}

Это прекрасно работает в представлении, и я могу вызвать нужные мне данные.

Теперь я пытаюсь нажать кнопку, а затем выполнить метод HttpPost, который возьмет эти данные и сохранит их в таблице (Модель) под названием Rental.

Этомой код:

[HttpPost]
public ActionResult RentPost(RentalViewModel model)
{
    var rentals = new Rental
    {
        CarId = model.CarId
    };

    _context.Rentals.Add(rentals);

    _context.SaveChanges();

    return RedirectToAction("About", "Home");
}

, и это мое мнение:

@using (Html.BeginForm("RentPost", "Home", new {id = @Model.CarId}))
{
    <h1> @Model.UserName </h1>
    <h1> @Model.UserEmail </h1>
    <h1> @Model.CarMake @Model.CarMod </h1>
    <h1>  </h1>
    <img src="@Model.CarPicture" alt="" />
    <h1> {@Model.CarPrice*3} </h1>

    @Html.DisplayFor(m=>m.CarId)

    <button type="submit" class="btn btn-primary"> Save </button>
}

Пока я передаю только один элемент только для целей тестирования и перенаправления также по той же причине.После отладки CarId имеет значение NULL, и это понятно, потому что ViewModel пуста в этой точке выполнения.Кто-нибудь может направить меня к правильной реализации?Спасибо

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