Модели внутри ViewModel имеют нулевые значения свойств при отправке с использованием Post - PullRequest
0 голосов
/ 20 октября 2018

ViewModel:

public class EventViewModel
{
    public Organization.Event Evt { get; set; }
    public GuestContributor Gst { get; set; }
}

С помощью этой ViewModel я отображаю данные о событиях, используя свойство Evt, которое работает нормально.И свойство Gst используется для получения данных из формы на той же странице:

@using (Html.BeginForm("GuestApplyToEvent", "Event", FormMethod.Post))
{ <div class="row">
  <div class="col-12 col-md-6">
  @Html.TextBoxFor(c => c.Gst.Name, new { @class = "form-control", placeholder = "Name" })
  @Html.ValidationMessageFor(c => c.Gst.Name)
  </div>
  <div class="col-12 col-md-6">
  @Html.TextBoxFor(c => c.Gst.Email, new { @class = "form-control", placeholder = "Email Address" })
  @Html.ValidationMessageFor(c => c.Gst.Email)
  </div>
 </div>
<div class="row">
  <div class="col-12 ">
     @Html.TextBoxFor(c => c.Gst.Mobile, new { @class = "form-control", placeholder = "Mobile (WhatsApp Number)" })
       @Html.ValidationMessageFor(c => c.Gst.Mobile)
    </div>
 </div>
  <input type="submit" class="btn dorne-btn" value="Apply" />

                                           }}

При отправке этой ViewModel в мой вид, я ничего не назначаю Gst.

И это действие:

[HttpPost]
public ActionResult GuestApplyToEvent(Models.GuestContributor eventViewModel)
{
    if (!ModelState.IsValid)
        return View("~/Views/Event/Index.cshtml", eventViewModel);

    return View("~/Views/Event/Index.cshtml", eventViewModel);
}

Проблема в том, что все свойства в eventViewModel равны нулю даже после ввода данных.

1 Ответ

0 голосов
/ 20 октября 2018

Ваш Post method ожидает модель типа GuestContributor, но в вашем представлении кажется, что вы используете модель EventViewModel, попробуйте изменить Post Method для получения типа модели EventViewModel

...