2012-10-31 45 views
5

我有绑定到视图的通用列表属性。问题是,当我在输入一些值后发布数据时,页面会刷新并且不会保留视图中的值。而且还当我尝试添加Html.ValidationMessage对于特定领域,我得到一个错误viewdata中的ASP.NET MVC genric列表

"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类中的属性是我输入的属性在查看 任何帮助非常赞赏荷兰国际集团的价值,谢谢

+1

不知道我的理解正确的话,但看起来像你的新值不无论您从何处加载_repository.GetCharts方法中的数据,都会被持久保存。 – tucaz

回答

0

要保留职位后,你可以将数据返回回来就好值:return View(chartList);

你得到了验证错误是因为在MVC验证级联不如果其Object属性适用。你需要应用模板或使用脚手架HTML助手:

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

您可以在asp.net mvc的检查正常的脚手架/模板HTML辅助

+0

嗨Rohit,谢谢你的回复。但我的问题是每当返回_repository.GetCharts(Convert.ToInt32(this.Template_Id));执行它alwasy返回一个新的图表列表。假设我在其他字段中有模型状态错误,我想保留用户在回发期间为ChartDisplaytext输入的值。但它总是创造一个新的。这是我在模型状态无效时编写的代码返回RedirectToAction(“”,“控制器名称”,模型);而视图正在刷新,模型不包含用户输入的值 –