【问题标题】:show exception error message in view在视图中显示异常错误消息
【发布时间】:2016-03-18 08:02:11
【问题描述】:

我正在尝试获取这样的异常消息并在控制器类中像这样传递给FileUpload 视图

        catch (Exception ex)
        {
            ViewBag.Error = ex.Message;                
        }

        return RedirectToAction("FileUpload", "FileUpload",ViewBag.Error);
    }

FileUpload 查看页面中,我试图显示这样的错误消息

@ViewBag.Error

但我在这里看不到任何错误消息

编辑

    [HttpGet]
    public ActionResult FileUpload()
    {
       ..
       return View(p);
    }

    [HttpPost]
    public ActionResult FileUpload(HttpPostedFileBase file)
    {
        ..
        return RedirectToAction("FileUpload", "FileUpload");
    }

【问题讨论】:

  • 显示您的 FileUpload() 方法 - 它是否具有接受错误消息的参数,然后您是否在该方法中将该值添加到 ViewBag
  • 显示文件上传操作
  • 是否还需要将该 ViewBag 值传递给 FileUpload ,get 方法?
  • 你不需要用RedirectToAction()方法传递ViewBag.Error,你只需要把你的@VeiwBag.Error放在你的视图中,它就会显示错误信息。
  • @SeM 这就是我目前的工作方式

标签: c# asp.net-mvc exception exception-handling


【解决方案1】:

您需要在 FileUpload 操作中接受该消息,然后再次将其分配给 viewbag 以获取页面中的数据。

   string exmsg="";
    try
    {
    //....
    }
    catch (Exception ex)
    {
     exmsg = ex.Message;                
    }
    return RedirectToAction("FileUpload", "Controllername", new { errormsg = exmsg });
    }

[HttpGet]
    public ActionResult FileUpload(string errormsg)
    {
       ViewBag.Error=errormsg
       return View(errormsg);
    }

【讨论】:

    【解决方案2】:

    试试这个:

    catch (Exception ex)
                {
                    return RedirectToAction("FileUpload", "FileUpload", new { errorMessage = ex.Message});                
                }
    

    和Get方法

    [HttpGet]
    public ActionResult FileUpload(string errorMessage)
    {
       @ViewBag.Error = errorMessage;
       . . .
       return View(p);
    }
    

    我相信RedirectToAction("FileUpload","FileUpload") 的第二个参数是你的控制器名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 1970-01-01
      • 2016-12-16
      • 1970-01-01
      • 2015-10-05
      • 2011-11-03
      • 2011-11-06
      相关资源
      最近更新 更多