JSON veya kısmi html döndüren ASP.NET MVC denetleyici eylemleri

Bir parametreye bağlı olarak JSON veya kısmi html döndürecek denetleyici eylemleri oluşturmaya çalışıyorum. Sonucu asenkron olarak bir MVC sayfasına döndürmenin en iyi yolu nedir?

Çözüm

Eylem yönteminizde, sayfanıza JSON döndürmek için Json(object) döndürün.

public ActionResult SomeActionMethod() {
  return Json(new {foo="bar", baz="Blech"});
}

Ardından Ajax kullanarak eylem yöntemini çağırın. ViewPage'deki yardımcı yöntemlerden birini kullanabilirsiniz, örneğin

SomeMethod, daha sonra döndürülen Json nesnesini değerlendiren bir javascript yöntemi olacaktır.

Düz bir dize döndürmek istiyorsanız, sadece ContentResult kullanabilirsiniz:

public ActionResult SomeActionMethod() {
    return Content("hello world!");
}

ContentResult varsayılan olarak contentType olarak text/plain döndürür.
Bu aşırı yüklenebilir olduğundan siz de yapabilirsiniz:

return Content("This is poorly formatted xml.", "text/xml");
Yorumlar (5)

JSON verileriyle başa çıkmanın bir başka güzel yolu da JQuery getJSON işlevini kullanmaktır. Çağırabilirsiniz

public ActionResult SomeActionMethod(int id) 
{ 
    return Json(new {foo="bar", baz="Blech"});
}

jquery getJSON yönteminden basitçe...

$.getJSON("../SomeActionMethod", { id: someId },
    function(data) {
        alert(data.foo);
        alert(data.baz);
    }
);
Yorumlar (3)

Sorunun diğer yarısına cevap vermek için arayabilirsiniz:

return PartialView("viewname");

kısmi HTML döndürmek istediğinizde. İsteğin JSON mu yoksa HTML mi istediğine karar vermenin bir yolunu bulmanız gerekecek, belki de bir URL parçasına/parametresine dayalı olarak.

Yorumlar (3)