İstek nesnesi vardır ve istek içerik türünü almak kolaydır. Ancak, yanıt için bir içerik türünü nasıl belirtirsiniz? Benim denetleyicisi bu (kısalık için eksize diğer eylemler) gibi görünür: Bu yanlış içerik türüne sahip olması dışında çalışıyorWeb API denetleyicisi yöntemi için ContentType nasıl belirtilir?
public class AuditController : ApiController
{
// GET api/Audit/CSV
[HttpGet, ActionName("CSV")]
public string Csv(Guid sessionId, DateTime a, DateTime b, string predicate)
{
var result = new StringBuilder();
//build a string
return result.ToString();
}
}
. Bu
Response.ContentType = "text/csv";
Biraz araştırma biz HttpResponseMessage dönmek için Eylem yazabilirsiniz ortaya koymaktadır yapmak istiyorum. Yani benim yönteminin sonu şu şekilde görünecektir: benim StringBuilder içeriğini nasıl
var response = new HttpResponseMessage() ;
response.Headers.Add("ContentType","text/csv");
response.Content = //not sure how to set this
return response;
HttpContent üzerinde dokümantasyon oldukça seyrek
, herkes itiraz bir HttpContent içine beni tavsiyelerde bulunabilir?
Aha! İhtiyacım olan Request.CreateResponse'nin kullanımıydı. Puanlar hepsi senin! (Sadece MediaTypeFormatter'a bakın ... neden bu kadar karmaşık hale getirsin ki?) –
"Henüz" dışarıda bırakabilirsiniz ... Ben alıyorum 'Yazabilir medya türü 'text/csv' ile eşleşen bir biçimlendirici bulunamadı 'String'.' bir örneği benim * bir dize * mantığı bir MediaTypeFormatter oluşturmak ve text/csv ile ilişkilendirmek ve LInQ sonucu CreateResponse ile iletmek gerektiğini anlatır. Beni oraya soktuğun için teşekkür ederim. –
Haklısınız. Güncellemeye bakın. – haim770