ASP.NET MVC ViewModel始终为null @html.displayfor

时间:2016-11-09 14:37:08

标签: c# asp.net-mvc

当我使用@ Html.DisplayFor()绑定我的模型时,它表示“值不能为null或为空”。

以下

  1. 我检查过控制器将有效模型传递给视图。

  2. 确保参数具有相应的{get; set;}。

  3. 在视图中制作了@if(Model!= null&& Model.Param!=“”)

  4. 有趣的是,它可以在AdminArea中运行,而不是在StoreArea中运行。这两个领域都使用相同的模型

    编辑:

        @using System.Web.UI.HtmlControls
        @using SU.Plugin.Payments.BankDeposit.Models.
    
        @{
            Layout = "~/Views/Shared/Master.cshtml";
         }
    
        @model OrderPaymentModel
      <div class="container">
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <h2>Payment Form</h2>
                    @if (Model.Status == PaymentStatus.Invalid)
                    {
                        @Html.ActionLink("Edit payment details", "OrderPayment", new {orderId = Model.OrderId, mode = "edit"})
                    }
                    <div class=custom-page-box-div>
                        <div class="fieldset">
                            <div class="form-fields">
                                <div class="form-group row">
                                    <div class="col-md-2">
                                        <label class="col-md- control-label"> @Html.LabelFor(model => model.BankPaidTo)</label>
                                    </div>
                                    <div class="col-md-8">
                                        @Html.DisplayFor(c => c.BankPaidTo.DisplayName)
                                        @Html.DisplayFor(model => model.BankPaidTo.DisplayName)
                                    </div>
                            </div>
                            <div class="form-group row">
                                <div class="col-md-2">
                                    @Html.LabelFor(model => model.TransactionNumber)
                                </div>
                                <div class="col-md-8">
                                    @Html.DisplayFor(model => model.TransactionNumber)
                                </div>
                            </div>
    
                            <div class="form-group row">
                                <div class="col-md-2">
                                    @Html.LabelFor(model => model.PaidAmount)
                                </div>
                                <div class="col-md-8">
                                    @Html.DisplayFor(model => model.PaidAmount)
                                </div>
                            </div>
    
                            <div class="form-group row">
                                <div class="col-md-2">
                                    @Html.LabelFor(model => model.DatePaidDay)
                                </div>
                                <div class="col-md-8 datepicker-dropdowns">
    
                                    @Html.DisplayFor(model => model.DateOfTransaction)
                                </div>
                            </div>
                            <div class="form-group row">
                                <div class="col-md-2">
                                    Deposit Slip
                                </div>
                                <div class="col-md-8">
                                    <img src="@Url.Content(Model.DepositSlipUrl)">
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
    
        </div>
    </div>
    

1 个答案:

答案 0 :(得分:0)

终于明白了。

所以我尝试逐个删除DisplayFor,每次删除都会导致下一个参数突出显示错误。 (除了实际导致问题的那个。=&gt;

直到我注意到错误消息中的“contentPath”行,并在我看到真正导致问题的原因时搜索了它。

我没有理解为什么它跳过那一行(绑定错误从下往上开始)。但它现在已经修好了..是的。