2012-02-08 25 views
22

Tôi có thể gặp phải các tình huống, khi tôi cần trả lại kết quả yêu cầu không hợp lệ.Trả lại hành động rỗngResult

Ví dụ: có cuộc gọi đến hành động của bộ điều khiển trang web MVC 3, nhưng thông số bắt buộc bị thiếu trong yêu cầu uri.

Tôi phải làm gì để trả lời. Tôi biết tôi có thể làm điều này:

Response.StatusCode = (int)HttpStatusCode.BadRequest; 
return Content(string.Empty); 

Đây có phải là cách chính xác cho trường hợp được mô tả ở trên không?

+13

Để tham khảo trong tương lai, có một 'EmptyResult' loại. – scottm

+0

'return new EmptyResult();' về nhận xét của @ scottm. –

Trả lời

32

giải pháp của bạn sẽ làm việc OK, nhưng cách rõ ràng hơn sẽ được sử dụng HttpStatusCodeResult lớp, như thế này:

return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
+4

Không cần truyền mã trạng thái vào int. Chỉ cần trả về HttpStatusCodeResult mới (HttpStatusCode.BadRequest); – JMS10

+9

Giải pháp này không tương đương với mã của tác giả. Theo mặc định HttpStatusCodeResult làm cho IIS trả về trang lỗi HTML mặc định với mô tả lỗi, nhưng không phải là nội dung trống. – dlxeon

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