Ответ Дарина Димитрова дал мне представление.
Я думаю, что было бы лучше сделать это:
public class HomeController : Controller {
public ActionResult View(string name) {
return new ViewResultWithHttpNotFound { ViewName = name};
}
}
с новым типом результата действия:
public class ViewResultWithHttpNotFound : ViewResult {
protected override ViewEngineResult FindView(ControllerContext context) {
ViewEngineResult result = ViewEngineCollection.FindView(context, ViewName, MasterName);
if (result.View == null)
throw new HttpException(404, "Not Found");
return result;
}
}