2015-10-16 5 views
3

Я парень из C++, не имеющий опыта работы с веб-сайтами, но мои руководители хотят, чтобы я изучил способы «ASP.NET MVC 6», потому что это последняя потрясающая вещь.Где находится HttpConflict в MVC6?

Мне удалось получить хотя бы один учебник, но я не вижу ссылки и документации. Где посмотреть, какие классы и методы существуют?

Моя текущая проблема заключается в том, что я пытаюсь выяснить, как вернуть статус Http 409 из моего метода Create в моем контроллере. Я не вижу метода HttpConflict. Что я могу назвать?

ответ

5

В ASP MVC 6 вы можете вернуть экземпляр StatusCodeResult из метода контроллера:

public IActionResult ConflictAction() 
{ 
    return new StatusCodeResult(StatusCodes.Status409Conflict); 
} 

еще лучше, вы можете создать свой собственный HttpConflictResult класс:

public class HttpConflictResult : StatusCodeResult 
{ 
    public HttpConflictResult() : base(StatusCodes.Status409Conflict) 
    { 
    } 
} 

public IActionResult ConflictAction() 
{ 
    return new HttpConflictResult(); 
} 

В случае, если вы задаетесь вопросом, эти типы результатов просто устанавливающее StatusCode свойство ответа, так что следующий будет эквивалентно 2 подхода выше на основе StatusCodeResult:

public IActionResult ConflictAction() 
{ 
    Response.StatusCode = StatusCodes.Status409Conflict; 
    return new EmptyResult(); 
} 
+0

Где этот метод HttpStatusCodeResult? Ссылка, которую вы дали, мертва, и я не могу найти ее в библиотеках. –

+0

Он был переименован в 'StatusCodeResult'. Я только что обновил ответ и ссылки –

1

Вы ищете HttpStatusCode

Namespaces

using System.Net.Http; 
using System.Web.Http; 

Вы можете использовать его как

public HttpResponseMessage ConflictSample() 
{ 
    return Request.CreateResponse(HttpStatusCode.Conflict, "Conflict"); 
} 
+0

запрос - что, черт возьми, это? – Maverick

+1

@Maverick я обновил ответ. – BrunoMartinsPro

+1

Спасибо :). Стоит также отметить, что вам также понадобится ссылка для Microsoft.AspNet.Mvc.WebApiCompatShim;) – Maverick

3

с ASP.NET Ядра 1.0 вы можете использовать метод StatusCode(int statusCode) доступный на любом Controller.

[HttpPost] 
public IActionResult Create([FromBody] Widget item) 
{ 
    // ... 

    // using the HttpStatusCode enum keeps it a little more readable 
    return StatusCode((int) HttpStatusCode.Conflict); 
} 
0
public async Task<IActionResult> Foo(string sequenceId) 
    {      
      var response = new ContentResult() 
      { 
       StatusCode = StatusCodes.Status409Conflict, 
       Content = "Order duplicate" 
      }; 
      return response;   
    } 

Я думаю, что это является экологически чистым способом

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