1

在 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]);

}

不幸的是,上面的例子不起作用,我不知道如何解决这个问题。谁能给我一个提示,如何解决它?

4

2 回答 2

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 ...
于 2013-06-24T05:09:17.023 回答
1
var my_models = new IEnumerable<object>[] { user_model, product_model };

尝试这个

于 2013-06-24T04:57:09.953 回答