【问题标题】:Models inside a ViewModel have null property values when submitted using PostViewModel 中的模型在使用 Post 提交时具有 null 属性值
【发布时间】:2019-03-25 07:32:25
【问题描述】:

视图模型:

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 发送到我的 View 时,我没有为 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的原因是什么?

标签: c# asp.net .net asp.net-mvc razor


【解决方案1】:

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

【讨论】:

  • 这是我的第一个猜测。我试过了,但仍然是同样的问题。在那种情况下,evtgst 都有空参数。
  • @AishwaryaShiva 是所有参数null 还是只是那些未绑定在您的表单中的参数?另外,您在表单中传递的那些属性是否具有public levelset methods
  • @AishwaryaShiva 我认为它现在正在工作?编码愉快。
  • 您的最后一条评论让我记得,当我使用 EventViewModel 作为操作的输入进行测试时,我从未将值传递给字段。我的错!谢谢:)
  • @AishwaryaShiva 没问题。很高兴我能帮上忙
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-16
相关资源
最近更新 更多