2017-01-04 14 views
9

Tôi có mã này trong global.asaxLàm thế nào để tạo đối tượng điều khiển và thực hiện hành động với tham số từ global.asax

protected void Application_Error(object sender, EventArgs e) 
     { 
      // ... 
      var routeData = new RouteData(); 
      routeData.Values.Add("controller", "Home"); 
      routeData.Values.Add("action", "Error"); 

      IController controller = new Controllers.HomeController(); 
      controller.Execute(new RequestContext(new HttpContextWrapper(Context), routeData)); 

     } 

làm thế nào tôi có thể thêm tham số để phương pháp hành động/RouteData? Tôi muốn hiển thị thông báo ngoại lệ cho người dùng.

+0

Tại sao bạn muốn gọi phương thức điều khiển trên lỗi, thay vì gọi cho dịch vụ hoặc logic kinh doanh từ Lỗi ứng dụng? –

+0

bạn có ý định xử lý lỗi và trả về chế độ xem trực tiếp từ global.asax không? – Muflix

+0

chính xác những gì bạn muốn làm với khối lỗi ứng dụng, muốn đăng nhập lỗi hoặc thực hiện cuộc gọi cơ sở dữ liệu để đăng nhập lỗi? –

Trả lời

2

Tôi có con số nó ra,

routeData.Values.Add("message", exception.Message); 

và trong hành động chỉ bắt rằng tham số

public ActionResult Index(string message) 
1

Để hiển thị trang lỗi tùy chỉnh, bạn cần thay đổi web.config.

<system.web> <customErrors mode="On" defaultRedirect="~/Error"> <error redirect="~/Error/NotFound" statusCode="404" /> </customErrors> </system.web>

Bạn có thể tạo các trang lỗi cho mã trạng thái khác nhau.

Đảm bảo bạn có phương thức điều khiển và hành động để trả về chế độ xem.

Sau khi Application_error MVC nó sẽ tự chuyển hướng đến cùng một trang như được mô tả trong web.config.

Vui lòng tham khảo link để biết thêm thông tin.

+0

Trong trường hợp này, làm cách nào tôi có thể truy cập ngoại lệ lỗi trong hành động? – Muflix

+0

Ngoại lệ sẽ được truy cập ở cấp Application_error, .net sẽ chuyển hướng đến hành động được mô tả trong tệp cấu hình. Hành động chỉ nên trả lại chế độ xem –

+0

nhưng làm cách nào tôi có thể hiển thị mô tả lỗi (thông báo ngoại lệ) trong chế độ xem? – Muflix

Các vấn đề liên quan