【问题标题】:ASP.NET MVC genric list in viewdataviewdata 中的 ASP.NET MVC 通用列表
【发布时间】:2012-10-20 17:47:04
【问题描述】:

我有绑定到视图的通用列表属性。问题是当我在视图中输入一些值后发布数据时,页面会刷新并且它不会保留视图中的值。而且当我尝试为该特定字段添加Html.ValidationMessage 时,我得到一个错误

 "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 类中的属性是我在 View 中输入值的属性 非常感谢任何帮助,谢谢

【问题讨论】:

  • 不确定我是否理解正确,但看起来您的新值并未保存到您在 _repository.GetCharts 方法中加载数据的任何位置。

标签: asp.net-mvc list generics


【解决方案1】:

要在发布后保留该值,您可以返回数据,例如:return View(chartList);

您收到的验证错误是因为在 MVC 验证中,如果其 Object 属性,则不应用级联。您需要应用模板或使用脚手架 HTML Helpers:

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

您可以在 asp.net mvc 中检查正确的 Scaffolding / 模板 HTML Helpers

【讨论】:

  • 您好 Rohit,感谢您的回复。但我的问题是每当 return _repository.GetCharts(Convert.ToInt32(this.Template_Id));执行它总是返回一个新的图表列表。假设我在其他字段中有模型状态错误,我想保留用户在回发期间为 ChartDisplaytext 输入的值。但它总是创造一个新的。这是我在模型状态无效时编写的代码 return RedirectToAction("", "controller name", model);当视图被刷新时,模型不包含用户输入的值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多