视图模型中的模型在使用 Post 提交时具有空属性值



ViewModel:

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

通过这个视图模型,我使用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" />
}}

将此视图模型发送到我的视图时,我没有向 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中的所有属性都是空的。

您的Post method需要类型为GuestContributor的模型,但在您的视图中,您似乎正在使用模型EventViewModel,请尝试更改Post Method以接收模型类型EventViewModel

最新更新