我必须在我的asp 5中间件中设置原因短语,而不仅仅是http响应消息的状态代码,但我找不到任何方法。StatusCode类的Microsoft.AspNet.Http.HttpResponse属性是只用于修改状态代码的int属性,而不是原因文本。
我理解,原因是根据状态代码自动设置的,但在我的示例中,我必须将其设置为自定义值。根据HTTP RFC 2616的说法,这是可以的
。。这里列出的词组只是建议--它们可以在不影响协议的情况下被本地对等词所取代。。。
我目前正在使用beta-8版本的asp 5框架。
发布于 2016-02-24 15:03:03
你可以试试:
Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = "some reason";返回原因的HttpStatusCodeResult可能如下所示:
public class BadRequestResult : HttpStatusCodeResult
{
private readonly string _reason;
public BadRequestResult(string reason) : base(400)
{
_reason = reason;
}
public override void ExecuteResult(ActionContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
context.HttpContext.Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = _reason;
context.HttpContext.Response.StatusCode = StatusCode;
}
}发布于 2015-11-13 15:04:47
尝尝这个
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Title = "Home Page";
return View();
}
public ActionResult TestError() // id = error code
{
return new HttpStatusCodeResult(301, "Your custom error text");
}
}现在检查http://localhost:33470/home/Testerror
看看费德勒

https://stackoverflow.com/questions/33695224
复制相似问题