2015-04-14 21 views
19

Bazı temel yönlendirme ile temel bir web API 2 kurulumuna sahibim.Web Api 2 Post - UrlHelper.Link null döndürmemelidir

Aşağıda, varsayılan yollar ve ekler için posta yer almaktadır.

ExceptionMessage: Ben yazıyı rekor veritabanında mükemmel oluşturulur ancak "CreatedAtRoute" çağrısı belirten 500 hatası döndürür çağırdığınızda "UrlHelper.Link boş dönmemek gerekiyordu" ExceptionType: "System.InvalidOperationException"

Bu hatayı neden aldım?

[RoutePrefix("api/casenotes")] 
    public class CasenoteController : ApiController... 



// POST api/Casenote 
[Route("")] 
[ResponseType(typeof(client_admission_casenote))] 
    public async Task<IHttpActionResult> Postclient_admission_casenote (client_admission_casenote client_admission_casenote) 
{ 

    Request.GetRequestContext().IncludeErrorDetail = true; 

    if (!ModelState.IsValid) 
    { 
     return BadRequest(ModelState); 
    } 

    db.client_admission_casenote.Add(client_admission_casenote); 
    await db.SaveChangesAsync(); 

    return CreatedAtRoute("DefaultApi", new { id = client_admission_casenote.casenote_id }, client_admission_casenote); 
    } 

cevap

34

Eğer özelliğini yönlendirme .. rotanızı adlandırmak zorunda kullandığımız için .. yani [Yolu ("API/kitaplar/{id}", Ad = "GetBookById")]

ve senin url.link() üzerinde kullanım rota adı ..

dETAYLAR burada çağrı http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2#route-names

+0

Teşekkür Ronnel, bu bilgi elde hile yapmak gerekir ama hala hata alıyorum. // GET api/Casenote/5 [Route ("{casenoteId}/detail", Name = "GetSingleCasenote")] [ResponseType (typeof (client_admission_casenote))] ve sonra yazılan adı kullanın: return CreatedAtRoute ("GetSingleCasenote" ", yeni {id = client_admission_casenote.casenote_id}, client_admission_casenote); } –

+1

Ah, çünkü varsayılan "id" değerini "casenoteId" olarak değiştirdim. Değiştirmem gerekti: CreatedAtRoute ("GetSingleCasenote", yeni {casenoteId = client_admission_casenote.casenote_id}, client_admission_casenote); } Teşekkür ederim Ronnel !!! –

+0

bunu başardığına sevindim. – Ronnel

İlgili konular