Asp.net mvc 一个操作在控制器中可以有多个视图吗?

Asp.net mvc 一个操作在控制器中可以有多个视图吗?,asp.net-mvc,view,action,Asp.net Mvc,View,Action,我想使用一个将id作为参数的操作,并检查id是否为null。如果id为null,我需要传递一个模型列表(例如person模型),如果id为null,我需要传递一个模型。我的操作需要使用2个视图,其中一个将模型作为IEnumerable,另一个只取一个模型。我已经用两个动作解决了这个问题,但我想知道是否有更简单的方法?谢谢。是的,您只需要指定视图的名称,例如: public ActionResult SomeAction(int? id) { if(id.HasValue} {

我想使用一个将id作为参数的操作,并检查id是否为null。如果id为null,我需要传递一个模型列表(例如person模型),如果id为null,我需要传递一个模型。我的操作需要使用2个视图,其中一个将模型作为IEnumerable,另一个只取一个模型。我已经用两个动作解决了这个问题,但我想知道是否有更简单的方法?谢谢。

是的,您只需要指定视图的名称,例如:

public ActionResult SomeAction(int? id)
{
    if(id.HasValue}
    {
        var item = GetSingleItem(id);
        return View("SingleModelView", item);
    }   
    else
    {
        var listOfItems = GetAllItems();
        return View("EnumerableModelView", listOfItems)
    }
}

您的if语句看起来应该被翻转为“+1”anyway@Fran,我猜您的意思是
GetSingleItem
应该使用
SingleModelView
GetAllItems
应该使用
EnumerableModelView
,我已经更新了。感谢您提供的解决方案,但我遇到了一个问题。我成功地传递了模型,但是当我试图打印相关表中的数据时,我得到了NullReferenceException。问题是我的数据库中有必要的数据。你有没有遇到过这样的问题?