Нет единого ответа на то, что вы пытаетесь сделать, самое простое и что мне нравится, это использовать класс HttpException
, например,
public ActionResult ProductDetails(int id) {
Product p = this.repository.GetProductById(id);
if (p == null) {
throw new HttpException(404, "Not Found");
}
return View(p);
}
В web.config вы можете настраивать страницы customError, например,
<customErrors mode="RemoteOnly" redirectMode="ResponseRewrite">
<error statusCode="404" redirect="Views/Errors/Http404.aspx" />
</customErrors>