MVC ActionResult调用另一个ActionResult

Nat*_*Pet 6 c# asp.net-mvc asp.net-mvc-3

我有一个ActionResult调用另一个ActionResult.

我在我的case语句中调用了一个ActionResult,但是没有用.这是我有的:

   public ActionResult GetReport(string pNum)
   {
   ....

        switch (methodId)
        {
          case 1:
          case 5:                
           {
             var actionResult =  GetP1Report("33996",false)  as ActionResult;
              break;
           }
         }

         return actionResult; 
       }
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:'actionResult'在当前上下文中不存在

如果我执行以下操作,它可以工作,但不是我需要的:

    public ActionResult GetReport(string pNum)
   {
      ....

       var actionResult =  GetP1Report("33996",false)  as ActionResult;

        switch (methodId)
        {
          case 1:
          case 5:                
           {
             // var actionResult =  GetP1Report("33996",false)  as ActionResult;
              break;
           }
         }

         return actionResult; 
       }
Run Code Online (Sandbox Code Playgroud)

如何让actionResult在我的case语句中工作,以便在我这样做时可以看到它

    return actionResult
Run Code Online (Sandbox Code Playgroud)

McG*_*gle 8

只需在switch语句之外声明它(我猜是默认值):

 ActionResult actionResult = null;
 switch (methodId)
    {
      case 1:
      case 5: // PVT, PVT-WMT
      {
          actionResult =  GetP1Report("33996",false)  as ActionResult;
          break;
       }
     }

 return actionResult ?? new View(); 
Run Code Online (Sandbox Code Playgroud)

注意:我添加?? new View()了默认值,如果没有任何案例分配任何内容actionResult- 根据需要修改它.

  • @Kugel不,它不是,你必须为它分配一些东西,或者你得到一个`使用未分配的局部变量"actionResult"`编译器错误. (4认同)
  • 赋值为null是多余的. (2认同)