在C#中有一种方法可以在var数组中存储几个不同的视图模型对象吗?
示例:
var user_model = db.Database.SqlQuery<User>("SELECT * FROM [User]").ToList();
var product_model = db.Database.SqlQuery<Product>("SELECT * FROM [Product]").ToList();
var my_models = new[]{ user_model, product_model };
string[] object_titles = { "User" , "Product" };
for( int i=0 ; i<my_models.Length ; i++ ){
if( my_models[i].Count() != 0 )
return View("../"+ object_titles[i] +"/Index", my_models[i]);
}
不幸的是,上面的例子不起作用,我不知道如何解决这个问题。 任何人都可以给我一个提示,如何解决?
答案 0 :(得分:3)
如果我误解了,请原谅我,但是,这不会更容易,更容易:
var user_model = db.Database.SqlQuery<User>("SELECT * FROM [User]").ToList();
var product_model = db.Database.SqlQuery<Product>("SELECT * FROM [Product]").ToList();
if(user_model.Any())
{
return View("../User/Index", user_model);
}
else if(product_model.Any())
{
return View("../Product/Index", product_model);
}
// return a default view or some other magic ...
答案 1 :(得分:1)
var my_models = new IEnumerable<object>[] { user_model, product_model };
试试这个