C# 这个带有查询报表的简单MVC应用程序缺少什么?
这就是我面临的情况: 我有3个控制器,如下所示: a) 计量控制器 b) 类别控制器 c) 导航控制器 在进一步讨论之前,我最好告诉大家,我在视图(HTML页面)上有一个简单的布局,它由一列(左侧)组成,表示类别,在页面的右侧,我必须显示一组信息。信息必须根据左列所选类别(报告类型)进行更改 MetricController负责从表(Metrics表)中检索一些信息,它是: 编辑****开始C# 这个带有查询报表的简单MVC应用程序缺少什么?,c#,asp.net-mvc,linq,asp.net-mvc-4,C#,Asp.net Mvc,Linq,Asp.net Mvc 4,这就是我面临的情况: 我有3个控制器,如下所示: a) 计量控制器 b) 类别控制器 c) 导航控制器 在进一步讨论之前,我最好告诉大家,我在视图(HTML页面)上有一个简单的布局,它由一列(左侧)组成,表示类别,在页面的右侧,我必须显示一组信息。信息必须根据左列所选类别(报告类型)进行更改 MetricController负责从表(Metrics表)中检索一些信息,它是: 编辑****开始 public class Metric { //just a class for IIS l
public class Metric { //just a class for IIS log
//[Key]
public int Id { get; set; }
public string date { get; set; }
public string time { get; set; }
public string c_ip { get; set; }
public string cs_username { get; set; }
public string s_sitename { get; set; }
public string s_computername { get; set; }
public string s_ip { get; set; }
AND MORE...
}
编辑****结束
public class MetricController : Controller {
private IMetricRepository repository;
public MetricController(IMetricRepository metricRepository) {
this.repository = metricRepository;
}
public ViewResult List() {
MetricsListViewModel model = new MetricsListViewModel {
Metrics = repository.Metrics
.OrderBy(p => p.Id) //just few columns for now
};
return View(model);
}
}
NavController负责导航并在左列显示类别(从其表中检索),如下所示:
public class NavController : Controller {
private ICategoryRepository repository;
public NavController(ICategoryRepository repo) {
repository = repo;
}
public PartialViewResult Menu() {
IEnumerable<string> categories = repository.Categories
.Where(x => x.Visible == "1" /*|| x.Visible == "0"*/)
.Select(x => x.CategoryName)
.Distinct()
.OrderBy(x => x);
return PartialView(categories);
}
但需要从表中加载报告名称。感谢您的帮助
问候,,
Amit感谢您为MetricsListViewModel添加def 我想你要找的是这样的东西
public ViewResult List(string category)
{
var viewModel = new MetricsListViewModel
{
Metrics = repository.Metrics.ToList()
};
}
更改此设置
MetricsListViewModel viewModel = new MetricsListViewModel {
Metrics = repository.Metrics
.Select(p => p.cs_username)
至
var viewModel = new MetricsListViewModel {
Metrics = repository.Metrics
.Select(p => p.cs_username).ToList();
正如,我不知道您的
MetricsListViewModel
如何定义MetricsListViewModel
?我确实在编辑部分将其添加到了上述代码中。我正在添加Metric类,以便您更好地了解这意味着什么,请参见上文。@amitkohan,matric列表视图模型是什么样子的?我非常感谢您的帮助,但我刚刚添加了MetricsListViewModel的定义。正如您所看到的,它是IEnumerable,所以我认为出现此错误的原因是SELECT将IEnumerable返回给IEnumerable,对吗?@amitkohan,感谢您添加定义。我认为我的编辑应该是有用的编译,但当我单击类别/报告名称时,它会抛出一条错误消息:**传递到字典中的模型项的类型为“MyAnalytics.WebUI.Models.MetricsListViewModel”,但此词典需要类型为“System.Collections.Generic.IEnumerable`1[MyAnalytics.Domain.Entities.Category]”的模型项**我添加了MetricsListView的定义。是IEnumerableThanks检查我:)不,不是,问题还在吗?
MetricsListViewModel viewModel = new MetricsListViewModel {
Metrics = repository.Metrics
.Select(p => p.cs_username)
var viewModel = new MetricsListViewModel {
Metrics = repository.Metrics
.Select(p => p.cs_username).ToList();