4

私はこれを使用しようとしました:

return Request.CreateResponse(HttpStatusCode.InternalServerError, "My message");

また、私はこれを試しました:

return new HttpStatusCodeResult(HttpStatusCode.InternalServerError, "My message");

しかし、「私のメッセージ」などのメッセージが表示されるのに、ブラウザに 500 エラーが表示されます。

4

3 に答える 3

9

ASP.NET MVC コントローラーからのメッセージと共に特定の応答コードを返すには、次を使用します。

return new HttpStatusCodeResult(errorCode, "Message");

コントローラーのメソッドが、ViewResult ではなく ActionResult 型であることを確認してください。

于 2013-03-08T18:58:43.010 に答える
0

エラーをスローして素敵なエラーページを表示するのに役立つ ErrorController がありResponse.StatusCode、別の StatusCode を返すために使用します

namespace Site.Controllers {

    [OutputCache(Location = OutputCacheLocation.None)]
    public class ErrorController : ApplicationController {

        public ActionResult Index() {
            ViewBag.Title = "Error";
            ViewBag.Description = "blah blah";
            return View("Error");
        }

        public ActionResult HttpError404(string ErrorDescription) {
            Response.StatusCode = 404;
            ViewBag.Title = "Page not found (404)";
            ViewBag.Description = "blah blah";
            return View("Error");
        }


        ...

    }
}

編集ajax結果にメッセージのみを返すために、actionFilterでこのようなものを使用します

        Response.StatusCode = 200;

        //Needed for IIS7.0
        Response.TrySkipIisCustomErrors = true;

        return new ContentResult {
            Content = "ERROR: " + Your_message,
            ContentEncoding = System.Text.Encoding.UTF8
        };
于 2013-03-08T19:08:44.530 に答える