Tôi đang sử dụng một nhà máy windsor lâu đài để khởi tạo một đối tượng dựa trên url yêu cầu.Làm cách nào để kết thúc phản hồi và gửi lại mã HTTP 404?
Cái gì như:
public FooViewModel Get()
{
if (HttpContext.Current == null)
{
return new FooViewModel();
}
var currentContext = new HttpContextWrapper(HttpContext.Current);
// resolve actual view model.
Trong một số trường hợp, tôi thực sự muốn ném một 404 và ngăn chặn các yêu cầu, hiện nay thích:
throw new HttpException(404, "HTTP/1.1 404 Not Found");
currentContext.Response.End();
Tuy nhiên, yêu cầu không kết thúc và nó vẫn chạm vào Hành động và cố gắng giải quyết chế độ xem?
My điều khiển sẽ giống như thế này:
public class HomeController : Controller
{
public FooViewModel Foo { get; set; }
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
return View();
}
Tôi nghĩ về điều này hoàn toàn sai? Hay có cách nào tôi có thể đạt được điều này?
Cách thay thế mà tôi đã nghĩ đến là thuộc tính trên hành động để kiểm tra trạng thái của thuộc tính Foo?
yup, tôi đã thay đổi thành điều này, cho phép xem có đề xuất nào khác không. – shenku
@shenku Tôi đã cập nhật phản hồi của mình với một cách tiếp cận khác, có thể điều đó sẽ hoạt động tốt hơn trong kịch bản của bạn? –