[英]ASP.NET MVC ViewModel always null @html.displayfor
當我使用@ Html.DisplayFor()綁定模型時,它表示“值不能為null或為空”。
做了以下
我檢查了控制器是否將有效模型傳遞給視圖。
確保參數具有相應的{get; set;}。
在視圖中創建一個@if(Model!= null && Model.Param!=“”)
有趣的是,它可以在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>
終於明白了。
因此,我嘗試一個一個地刪除DisplayFor的對象,每次刪除都會導致下一個參數突出顯示並顯示錯誤。 (除了實際上引起問題的那一個。=>
直到我注意到錯誤消息中的“ contentPath”行,並在發現真正引起問題的原因時對其進行搜索。
我不明白為什么它會跳過那行(綁定錯誤從下而上開始)。 但是現在固定了..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.