Я знаю, что есть множество примеров, которые должны решить мою проблему.Я сделал все, что мог, но все еще не мог решить мою проблему.У меня есть HotelRoomID, который устанавливается в 0 после каждой отправки.Я использую HotelRoomID для извлечения данных из базы данных.
Это мой BookingViewModel
(другие свойства не указаны)
public int HotelRoomID { get; set; }
public HotelRoom HotelRoom { get; set; }
Это мой BookingController
.Это может выглядеть странно, но моя форма - пошаговая форма.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Stepper(BookingViewModel bookingViewModel) //problem starts here. HotelRoomID is 0...
{
if (!ModelState.IsValid)
{
switch (bookingViewModel.Step)
{
case 1:
GenerateForm(bookingViewModel);
_bookingViewModel.Step = 2;
break;
case 2:
var item = bookingViewModel.PersonList;
GenerateForm(bookingViewModel);
GenerateOverview(bookingViewModel);
break;
case 3:
GenerateOverview(bookingViewModel);
break;
}
return View("Create",_bookingViewModel);
}
SaveBooking(_bookingViewModel);
return View("home");
}
Ниже приведен код формы бритвы:
@model HoteldeBotel.Models.BookingViewModel
<div class="row setup-content" id="step-2">
@using (Html.BeginForm("Stepper", "Booking", Model))
{
@Html.AntiForgeryToken()
@if (Model.PersonList != null)
{
<div class="col-xs-12">
<div class="col-md-12 formContent">
<h3> Persoonsgegevens invullen </h3>
@for (int i = 0; i < Model.PersonList.Count(); i++)
{
<ul class="col-md-4 personFormList">
@Html.ValidationMessageFor(model => model.PersonList[i].Name, "", new { @class = "text-danger" })
<li>
@Html.LabelFor(model => Model.PersonList[i].Name, htmlAttributes: new { @class = "control-label" })
@Html.EditorFor(model => Model.PersonList[i].Name, "", new { @class = "form-control numberOfPersons" })
</li>
@Html.ValidationMessageFor(model => model.PersonList[i].Email, "", new { @class = "text-danger" })
<li>
@Html.LabelFor(model => Model.PersonList[i].Email, htmlAttributes: new { @class = "control-label" })
@Html.EditorFor(model => Model.PersonList[i].Email, "", new { @class = "form-control numberOfPersons" })
</li>
<li>
@Html.ValidationMessageFor(model => model.AddressList[i].Name, "", new { @class = "text-danger" })
<br />
<label class="control-label">Straatnaam</label>
@Html.EditorFor(model => Model.AddressList[i].Name, "", new { @class = "form-control numberOfPersons" })
</li>
@Html.ValidationMessageFor(model => model.AddressList[i].ZipCode, "", new { @class = "text-danger" })
<li>
@Html.LabelFor(model => Model.AddressList[i].ZipCode, htmlAttributes: new { @class = "control-label" })
@Html.EditorFor(model => Model.AddressList[i].ZipCode, "", new { @class = "form-control numberOfPersons" })
</li>
@Html.ValidationMessageFor(model => model.AddressList[i].City, "", new { @class = "text-danger" })
<li>
@Html.LabelFor(model => Model.AddressList[i].City, htmlAttributes: new { @class = "control-label" })
@Html.EditorFor(model => Model.AddressList[i].City, "", new { @class = "form-control numberOfPersons" })
</li>
</ul>
}
@if (Model.Step == 2)
{
Model.Step = 3;
<button class="btn btn-primary nextBtn btn-lg pull-right" type="submit">Next</button>
}
else
{
<button class="btn btn-primary nextBtn btn-lg pull-right" type="button">Next</button>
}
</div>
</div>
}
}
</div>
Я надеюсь, что кто-то может помочь мне, потому что я не могу это исправитьпроблема.Кто-нибудь знает, как это исправить?
Заранее спасибо.