2012-02-10 12 views
10

Wołam moją metodę kontrolera za pomocą .ajax. moja metoda kontrolna wywołuje usługę sieciową, która zwraca słownik. Teraz muszę zwrócić tę i wypełnić listę rozwijaną. Staram powrotnej z JSON i trzeba wypełnić przy użyciu sukces (odpowiedź)jak zwrócić JSON z kontrolerem MVC

Używam MVC 1.0

 $.ajax(
      { 
       url: 'LookupValue/', 
       data: { 'sLookupIds': selectedtext }, 
       datatype: "json", 
       traditional: true, 
       success: function (data) { 
        alert(data.value); 
       } 
      }); 

z góry dzięki.

Odpowiedz

17

W kontrolerze

public JsonResult LookupValue(String sLookupIds) 
    { 

     SelectList olist = new SelectList(oDict, "key","value"); 

     return Json(olist); 

    } 

Biorąc

 $.ajax(
      { 
       url: 'LookupValue/', 
       data: { 'sLookupIds': selectedtext }, 
       datatype: "json", 
       traditional: true, 
       success: function (data) { 
        $.each(data, function (index, val) { 
         $('#lookup') 
         .append($("<option></option>") 
         .attr("value", val.Value) 
         .text(val.Text)); 
         //ddHTML = ddHTML + "<option value='" + val.Value + "'>'" + val.Texts + "'</option>"; 
        }); 
       } 
      }); 
+0

Zamiast JsonResult i Json można użyć ActionResult i zwrócić SelectList. W ten sposób możesz użyć negocjacji treści ... – mko

0

w twojej Action w swojej Controller:

return Json(data); 

Jeżeli dane to obiekt, który chcesz serialiazed do JSON.

Jeśli chcesz używać Json.NET, po prostu nadpisz metodę Json.

+0

ale trzeba konwertować do słownika JSON String prawidłowe? – jvm

Powiązane problemy