2012-10-31 18 views
5

私はビューにバインドするジェネリックリストプロパティを持っています。問題は、ビューでいくつかの値を入力した後にデータをポストし、ページがリフレッシュされ、ビューの値が保持されない場合です。そしてまた、私はその特定のフィールドについてHtml.ValidationMessageを追加しようとしたとき、私はエラーにビューに表示されるASP.NET MVCジェネリックリスト

"The value 'System.Collections.Generic.List`1[<name of the class>]' is invalid" 

を取得する私のコードは モデル

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

実際のクラス

public class Chart 
    { 
     public string ChartDisplayText { get; set; } 
    } 
、このようになります

Chartクラスのプロパティは、私が入力したプロパティですビュー の値に感謝すべてのヘルプをINGの、おかげ

+1

ない、私はそれを正しく理解したが、あなたの新しい値ではないように見えることを確認_repository.GetChartsメソッドからデータをロードしているところには永続化されます。 – tucaz

答えて

0

がポストした後の値を保持するには以下のように戻ってデータを返すことができますMVCで検証カスケードではないので、あなたが検証のために取得しているエラーがあるreturn View(chartList);

そのObjectプロパティの場合に適用されます。あなたは、テンプレートを適用したり、足場HTMLヘルパーを使用する必要があります。

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

あなたはasp.netのMVCに適切な足場/テンプレートHTMLヘルパーを確認することができ

+0

こんにちはRohit、返信いただきありがとうございます。しかし、私の問題はreturn _repository.GetCharts(Convert.ToInt32(this.Template_Id)); alwasyは新しいチャートのリストを返します。私はいくつかの他のフィールドにmodelstateエラーがあるとしましょう私はバックの間にChartDisplaytextのためにユーザーが何を入力した値を保持したいです。しかし、常に新しいものを作成します。これはモデル状態が無効なときに書いたコードです。RedirectToAction( ""、 "コントローラ名"、モデル);ビューがリフレッシュされている間、モデルにはユーザーが入力した値は含まれません –

関連する問題