首页 > 解决方案 > 一个动作可以在控制器中有多个视图吗?

问题描述

我想使用一个以 id 作为参数的操作并检查 id 是否为空。如果 id 为空,我需要传递一个模型列表(例如人员模型),如果不是,我需要传递一个模型。我需要使用 2 个视图来执行我的操作,其中一个将模型作为 IEnumerable,另一个仅采用单个模型。我已经使用 2 个动作解决了这个问题,但我想知道是否有更简单的方法?谢谢你。

标签: asp.net-mvcviewaction

解决方案


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

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

推荐阅读