2016-11-09 23 views
0

Wenn ich mein Modell mit @ Html.DisplayFor() binden, heißt es, dass der "Wert nicht null oder leer sein kann".ASP.NET MVC ViewModel immer null @ html.displayfor

Hat die folgenden

  1. überprüfte ich, dass die Steuerung der Ansicht ein gültiges Modell geht.

  2. Stellen Sie sicher, dass die Parameter die entsprechenden {get; set;} haben.

  3. hat diese @if (Modell! = Null & & Model.Param! = "") In der Ansicht

Komische ist, dass es im Adminbereich und nicht im StoreArea funktioniert. Beide Bereiche sind mit dem gleichen Modell

Edit:

@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> 
+0

Können wir die ersten ~ 5 Zeilen der Rasur sehen Quelle? – clarkitect

+1

bitte teilen Ihr Code –

+0

definieren Sie das Modell in der Controller? Übergeben Sie es an die Ansicht? –

Antwort

0

Schließlich wurde es.

Also habe ich versucht, die DisplayFor eins nach dem anderen zu entfernen, wobei jede Entfernung, die den nächsten Parameter verursacht, mit dem Fehler markiert wird. (Mit Ausnahme des einen, die tatsächlich das Problem verursacht wurde. =>

Erst, bis ich die „contentPath“ Zeile in der Fehlermeldung bemerkt und suchte sie auf, als ich sah, was wirklich verursacht wurde meine Probleme.

Ich verstehe nicht, warum es diese Zeile übersprungen hat (Binding Fehler von unten nach oben). Aber es ist jetzt so festgelegt .. yey

Verwandte Themen