C# 使用两个不同视图的结果集(来自if语句)
我有一段代码可以处理一个名为result original的结果集,我知道,但根据传入的变量,我想根据具体情况启动特定的查询。我在if语句中有下面的内容,但这只会使结果记录集出现那些讨厌的红线,并且它不起作用。我相信这很容易解决C# 使用两个不同视图的结果集(来自if语句),c#,asp.net-mvc,model-view-controller,asp.net-mvc-2,C#,Asp.net Mvc,Model View Controller,Asp.net Mvc 2,我有一段代码可以处理一个名为result original的结果集,我知道,但根据传入的变量,我想根据具体情况启动特定的查询。我在if语句中有下面的内容,但这只会使结果记录集出现那些讨厌的红线,并且它不起作用。我相信这很容易解决 if (area == "dashboard") { IQueryable<ViewGetNavigationMainItem> result = (from m in _entities.ViewG
if (area == "dashboard")
{
IQueryable<ViewGetNavigationMainItem> result = (from m in
_entities.ViewGetNavigationMainItems
where m.area.Trim() == area.Trim()
where m.state == "Online"
where m.parentID == parentID
orderby m.sequence ascending
select m);
}
else
{
//Get the Content Items
IQueryable<ViewGetNavigationContentItem> result = (from m in
_entities.ViewGetNavigationContentItems
where m.navID == navID
where m.parentID == parentID
orderby m.contentOrder ascending
select m);
}
maxRecords = result.Count();
foreach (var item in result)
{
//do something
}
注意:您可以使用&&而不是多个where
首先,在if之前将result定义为c4.0中两种结果类型的基类或接口的IQueryable或可枚举的。您可以创建这样的基类。假设ViewGetNavigationMainItem和ViewGetNavigationContentItem的唯一公共基类是Object:
在代码中,检查计数时,结果不在范围内,因为它在if和else中声明 您需要将结果声明移到if之上,并将其声明为两个结果都是,例如IEnumerable 如果你只想数一数,那就是
如果你想做更多的事情,考虑创建一个模型,你可以选择两个结果,例如
class ResultModel{
int Id{get;set;}
string Display{get;set;}
}
你的问题到底是什么?
foreach (object item in result)
{ etc etc etc
class ResultModel{
int Id{get;set;}
string Display{get;set;}
}