2010-09-20 8 views
8

hatte ich meine ASP.NET MVC-Aktionen wie folgt geschrieben:MVC JSON Aktionen Rückkehr Bool

// 
    // GET: /TaxStatements/CalculateTax/{prettyId} 
    public ActionResult CalculateTax(int prettyId) 
    { 
     if (prettyId == 0) 
      return Json(true, JsonRequestBehavior.AllowGet); 

     TaxStatement selected = _repository.Load(prettyId); 
     return Json(selected.calculateTax, JsonRequestBehavior.AllowGet); // calculateTax is of type bool 
    } 

ich Probleme damit hatte, weil, wenn es in jquery Funktionen hatte ich alle möglichen Fehler, meist toLowerCase() Funktion versagt .

So hatte ich die Aktionen in einer Art und Weise zu ändern, dass sie bool als String zurück (ToString() auf Bool Werte aufrufen), so dass Thay Rückkehr true oder false (in den qoutes), aber ich irgendwie mag es nicht.

Wie gehen andere mit einem solchen Fall um?

Antwort

15

würde ich anonymes Objekt verwenden (denken Sie daran, dass JSON ein Schlüssel/Wert-Paare ist):

public ActionResult CalculateTax(int prettyId) 
{ 
    if (prettyId == 0) 
    { 
     return Json(
      new { isCalculateTax = true }, 
      JsonRequestBehavior.AllowGet 
     ); 
    } 

    var selected = _repository.Load(prettyId); 
    return Json(
     new { isCalculateTax = selected.calculateTax }, 
     JsonRequestBehavior.AllowGet 
    ); 
} 

Und dann:

success: function(result) { 
    if (result.isCalculateTax) { 
     ... 
    } 
} 

Bemerkung: Wenn die selected.calculateTax Eigenschaft ist boolean .NET Namensgebung Konvention wäre, es IsCalculateTax zu nennen.

+0

speicherte meinen Tag !. Vielen Dank – user1221765