Asp.net mvc 如何检查razor中viewbag的内容

Asp.net mvc 如何检查razor中viewbag的内容,asp.net-mvc,razor,viewbag,Asp.net Mvc,Razor,Viewbag,是否有任何方法可以检查viewbag内容、viewbag在视图中的数据类型。 我的控制器每次单击按钮时都可能发送新数据,并使用相同的名称viewbag发送数据 这是我的控制器 public ActionResult Details(string IncomRequest, Int Id) { // some code...... switch (IncomRequest) { case ("Order"): ViewBag.Query

是否有任何方法可以检查viewbag内容、viewbag在视图中的数据类型。 我的控制器每次单击按钮时都可能发送新数据,并使用相同的名称viewbag发送数据

这是我的控制器

public ActionResult Details(string IncomRequest, Int Id)
  {
// some code......
    switch (IncomRequest)
    {

        case ("Order"):
            ViewBag.Query = list<Ordr> Ord;
           break;

        case ("Process"):
            ViewBag.Query = lis<Process> pro;
            break;
   }
  return view();
public ActionResult详细信息(字符串IncomRequest,Int-Id)
{
//一些代码。。。。。。
开关(输入请求)
{
案件(“命令”):
ViewBag.Query=列表Ord;
打破
案件(“程序”):
ViewBag.Query=lis pro;
打破
}
返回视图();
在我看来,我想检查viewbag包含的内容
是Ord还是pro。

在您看来,您可以这样做:

// if this is true then there's nothing there
@if (ViewBag.Query == null)
此外,您还可以执行以下操作:

// it was set by the "Order" case
@if (ViewBag.Query is List<Ordr>)
//它是由“订单”案例设置的
@如果(ViewBag.Query是列表)
是的,你可以

@if(ViewBag.Query is List<Ordr>)
{
    // List<Ordr>
}
else if(ViewBag.Query is List<Process>)
{
    // List<Process>
}
@if(ViewBag.Query是列表)
{
//名单
}
else if(ViewBag.Query是列表)
{
//名单
}

为什么不创建两个不同的ViewBag,一个用于pro,另一个用于Ord,并检查两者是否为空?您是否考虑过使用强类型视图?我将创建两个单独的操作,甚至可能是控制器,为什么要传入
IncomRequest
,即
OrderDetails(int-id)
ProcessDetails(int-id)
Single Responsibility我没有使用强类型视图,并且我的视图没有绑定到任何modell。因此视图不知道列表是什么is@FadiAlkadi,这与视图是否为强类型无关。您只需要在视图中提供完整的命名空间声明(即我的代码)或者在
web.config
中提供它们。