SORU
20 Temmuz 2012, Cuma


Bir şekilde ASP.NET Web API düz metin geri dönmek için gücü var mı?

Bir yanıt ASP.NET Web API denetleyicisi düz metin içinde geri dönmem gerekiyor.

Accept: text/plain ile bir istek yapmak denedim, ama işe yaramıyor. Ayrıca, istek harici ve benim elimde olan birşey değil. Gerçekleştirmek istediğim eski ASP.NET yoldan gitmekti

context.Response.ContentType = "text/plain";
context.Response.Write("some text);

Herhangi bir fikir?

Çözüm . DÜZENLE : Aliostad cevabı dayalı, ekledim WebAPIContrib metin biçimlendirici, Application_Start içinde başlatıldı:

  config.Formatters.Add(new PlainTextFormatter());

ve benim denetleyicisi bir şey gibi sona erdi:

[HttpGet, HttpPost]
public HttpResponseMessage GetPlainText()
{
  return ControllerContext.Request.CreateResponse(HttpStatusCode.OK, "Test data", "text/plain");
}

CEVAP
23 EKİM 2012, Salı


Hmmm... bu işi yapmak için özel bir biçimlendirici oluşturmanız gerekir sanmıyorum. Bunun yerine bu gibi: içeriği döndürür

    [HttpGet]
    public HttpResponseMessage HelloWorld()
    {
        string result = "Hello world! Time is: "   DateTime.Now;
        var resp = new HttpResponseMessage(HttpStatusCode.OK);
        resp.Content = new StringContent(result, System.Text.Encoding.UTF8, "text/plain");
        return resp;
    }

Bu özel bir biçimlendirici kullanarak olmadan benim için çalışıyor.

Eğer açıkça çıktı oluşturmak ve varsayılan içerik müzakere başlıklarının Kabul dayalı geçersiz kılmak istiyorsanız İsteği kullanmak istemezsiniz.() CreateResponse mıme tipi zorlar çünkü.

Bunun yerine açıkça yeni bir HttpResponseMessage oluşturmak ve içeriği el ile atayın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • Jonathan D.

    Jonathan D.

    3 Kasım 2006
  • Mr. H

    Mr. H

    1 Temmuz 2012