如何调试通过表单提交发送的null属性

时间:2017-10-24 08:50:08

标签: c# asp.net-mvc

我在模型@model SharedLibrary.Sample的视图中有以下表单:

using (Html.BeginForm("Send", "Sample", FormMethod.Post))
{
    @Html.HiddenFor(y => y.QCDate, Model.QCDate)

    @Html.HiddenFor(y => y.GRV, Model.GRV)
    @Html.HiddenFor(y => y.Pallet, Model.Pallet)
    @Html.HiddenFor(y => y.PONo, Model.Pallet.Grv.PONo)
    @Html.HiddenFor(y => y.PalletSeq, Model.Pallet.PalletSeq)
    @Html.HiddenFor(y => y.SampleNo, Model.SampleNo) 

    @Html.HiddenFor(y => y.Clerk, Model.Clerk)
    @Html.HiddenFor(y => y.Supervisor, Model.Supervisor)
    @Html.HiddenFor(y => y.StatusClerk, Model.StatusClerk)
    @Html.HiddenFor(y => y.StatusSupervisor, Model.StatusSupervisor)

    @Html.HiddenFor(y => y.QtyInspected, Model.QtyInspected)
    @Html.HiddenFor(y => y.MassOff, Model.MassOff)

    @Html.HiddenFor(y => y.Product, Model.Product)
    @Html.HiddenFor(y => y.Variety, Model.Variety)
    @Html.HiddenFor(y => y.Supplier, Model.Supplier)

    @Html.HiddenFor(y => y.Defects, Model.Defects)

    <input type="submit" value="Email" class="pull-right btn btn-default" />
}

当我单步执行该程序时,我可以看到在创建视图时明确填充了属性PalletDefects(它们包含Pallet和{{类型的对象1}}分别)。

但是,当我单击List<QCItem>按钮并逐步执行控制器中的代码时,我可以看到这些属性都包含Email,即使其他属性都已填充:

null

我从哪里开始调试此问题?我觉得在属性可以设置为null之间没有可能的步骤。

我尝试删除所有其他属性的public class SampleController { [HttpPost] public ActionResult Send(Sample sample) { return View(sample); } } 只是为了确保它们是以这种形式设置的,并且肯定会导致将空hiddenField对象发送到控制器。

非常感谢任何帮助,谢谢。

0 个答案:

没有答案