2009-10-29 36 views
5

Có thể trả lại một 307 Temporary Redirect từ bộ điều khiển trong ASP.NET MVC không?Trả lại 307 Chuyển hướng tạm thời trong ASP.NET MVC

I đôi khi cần phải lại POST các giá trị được gửi từ một biểu mẫu này sang một URI khác.

Sử dụng JavaScript để thực hiện lựa chọn ở phía máy khách (do đó bỏ qua vấn đề này) không phải là một tùy chọn.

Chuyển hướng qua GET không phải là tùy chọn vì dữ liệu được đăng bao gồm chuỗi 8k có khả năng có nghĩa là URI sẽ quá dài đối với một số trình duyệt (nhiều người).

Điều này có thể thực hiện được không?

Trả lời

3

Hãy xem bài viết sau đây - bạn có thể sử dụng kỹ thuật tương tự cho 307:

301 Redirects

+0

Tôi cần * đôi khi * thực hiện chuyển hướng dựa trên dữ liệu được chuyển. Truy cập vào mô hình (trong đó logic là) từ bộ định tuyến có vẻ sai. Có [một bản sao] logic trong routehandler có vẻ còn tồi tệ hơn. –

+0

Sử dụng RouteHandler có vẻ như là một cách hay để giải quyết vấn đề này. - Không phải khi có logic liên quan. –

+1

Bạn có thể tạo kết quả hành động khác trong trường hợp này - một lần nữa đây là ví dụ mà bạn có thể sửa đổi: http://www.stum.de/2008/10/22/permanentredirectresult/ – FinnNk

6

Để trả về một kết quả 307 chuyển hướng từ một hành động MVC, sử dụng như sau:

public ActionResult Action() 
{ 
    string url = GetRedirectUrl() 
    HttpContext.Response.AddHeader("Location", url); 
    return new HttpStatusCodeResult(307); 
} 
Các vấn đề liên quan