5 Stimmen

ASP.NET MVC generische Liste in ViewData

Ich habe eine generische Listen-Eigenschaft, die ich an die Ansicht binde. Das Problem ist, wenn ich die Daten nach Eingabe einiger Werte in der Ansicht absende, wird die Seite aktualisiert und der Wert in der Ansicht wird nicht behalten. Und auch wenn ich Html.ValidationMessage für dieses bestimmte Feld hinzufügen möchte, erhalte ich einen Fehler

 "Der Wert 'System.Collections.Generic.List`1[]' ist ungültig"

Mein Code sieht so aus, Modell

  public List Charts 
  { 
     get 
       { 
         return  _repository.GetCharts(Convert.ToInt32(this.Template_Id)); 
      } 
      set{} 
   }

Eigentliche Klasse

 public class Chart
   {
        public string ChartDisplayText { get; set; }
   }

Die Eigenschaft in der Chart-Klasse ist die, in die ich den Wert in der Ansicht eingebe. Jede Hilfe wird sehr geschätzt, Danke

0voto

RohitWagh Punkte 1823

Um den Wert nach dem Posten beizubehalten, können Sie die Daten zurückgeben wie: return View(chartList);

Der Fehler, den Sie bei der Validierung erhalten, liegt daran, dass in der MVC-Validierung die Kaskadierung nicht angewendet wird, wenn es sich um eine Object-Eigenschaft handelt. Sie müssen ein Template anwenden oder die Scaffolding-HTML-Helfer verwenden:

@foreach(Charts item in Model)
{
@Html.EditorFor(x => item.ChartDisplayText)
}

Sie können nach geeigneten Scaffolding / Template HTML-Helfern in Asp.net MVC suchen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X