2017-08-18 1 views
0

Ich hatte Methode geschrieben in .Net 4.5 Es ist sehr einfach. Entweder returns Student entity or throw NOT FOUND exception.Wie wende ich HttpResponseException (NotFound) mit AspNetCore

ich port it into .NET Core 2.0. Gemäß meinem Verständnis habe Schwierigkeiten, .net core empfehlen IActionResult so zurückzukehren, habe ich einfach NotFound().

jedoch zurückkehren kann, ich bin nicht sicher, wie kann ich werfe ein nicht HttpResponseException (Nicht gefunden) Ausnahme.

Methode:

public Student Get(Guid id) 
{ 
    Student student = _studentSvc.Get(id); 
    if (student != null) 
     return student; 
    else 
     throw new HttpResponseException(HttpStatusCode.NotFound); 
} 

Versuch:

public Student Get(Guid id) 
{ 
    Student student = _svc.Get(id); 
    if (student != null) 
     return student; 
    else 
     return NotFound(); 
} 

Und wenn ich wie folgt versuchen, dann ist diese Linie return student beklagt, dass nicht implizit Schüler in ...Mvc.IActionResult etwas umwandeln kann

public IActionResult Get(Guid id) 
{ 
    Student student = _svc.Get(id); 
    if (student != null) 
     return student; 
    else 
     return NotFound(); 
} 

Aber es gibt Fehler kann nicht NotFoundResult in Student konvertieren !!

Antwort

1

Sie müssen IActionResult wie bereits erwähnt zurückgeben.

public IActionResult Get(Guid id) 
{ 
    Student student = _svc.Get(id); 
    if (student != null) 
    { 
     return Ok(student); 
    } 
    return NotFound(); 
} 
+0

wenn ich IActionResult kehrt dann diese Linie versagt Rückkehr Schüler sagen, kann nicht implizit Schüler umwandeln zu Action; – simbada

+0

Ja genau das, was ich am Ende komme. Was auch immer, wenn Sie nichts an den Client zurückgeben möchten, aber dennoch NotFoundException werfen möchten. Wie würdest du das machen? – simbada

+0

Ist die richtige Vorgehensweise nach der Bearbeitung, müssen Sie 'OK (Student)' oder 'Inhalt (HttpStatusCode.Accepted, Student) zurückgeben' – Xenolightning