2013-08-23 3 views
3

Я использую .NET MVC.HttpResult (HttpStatusCode.NoContent) создает ответ «ОК»

Когда я вернусь new HttpResult(HttpStatusCode.NoContent); объект, который создается имеет код состояния = 200:

{ServiceStack.Common.Web.HttpResult} 
    AllowsPartialResponse: false 
    ContentType: null 
    FileInfo: null 
    Headers: Count = 0 
    IsPartialRequest: false 
    Options: Count = 0 
    RequestContext: null 
    Response: NoContent 
    ResponseFilter: {ServiceStack.Common.Web.HttpResponseFilter} 
    ResponseStream: null 
    ResponseText: null 
    Status: 200 
    StatusCode: OK 
    StatusDescription: null 
    Template: null 
    View: null 

Эмм .. что?

+0

Похоже, вы используете ServiceStack. Где находится служба, IIS или какой-либо другой сервис? Это может повлиять на код состояния. – rycornell

+0

@rycornell Он находится на IIS. – BanksySan

ответ

4

Вы должны указать описание состояния в конструкторе, если вы хотите использовать перегруженный конструктор, который принимает HttpStatusCode

Если вы посмотрите на код HttpResult вы можете увидеть, что конструктор вы звоните, это:

public HttpResult(object response) : this(response, null) {} 

HttpStatusCode объект, который вы передаете в фактически используется в качестве ответа (любой объект может быть ответом). Существует еще один конструктор, который вы должны использовать здесь:

public HttpResult(HttpStatusCode statusCode, string statusDescription)

т.е.

new HttpResult(HttpStatusCode.NoContent, "No Content"); 
+0

Хорошее место, Майк! Благодарю. – BanksySan

Смежные вопросы