【问题标题】:Could an action can have more than one view in a controller?一个动作可以在控制器中有多个视图吗?
【发布时间】:2018-07-10 17:09:29
【问题描述】:

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

【问题讨论】:

    标签: asp.net-mvc view action


    【解决方案1】:

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

    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 语句看起来应该被翻转
    • @Fran ,我猜你的意思是 GetSingleItem 应该使用 SingleModelViewGetAllItems 应该使用 EnumerableModelView ,我已经更新了。
    • 感谢您的解决,但我遇到了一个问题。我成功通过了模型,但是当我尝试打印相关表中的数据时,我得到了 NullReferenceException。问题是我的数据库中有必要的数据。你有遇到过这样的问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多