开发者

MVC JSON actions returning bool

开发者 https://www.devze.com 2023-01-16 18:03 出处:网络
I had my ASP.NET MVC actions written like this: // // GET: /TaxStat开发者_如何转开发ements/CalculateTax/{prettyId}

I had my ASP.NET MVC actions written like this:

    //
    // GET: /TaxStat开发者_如何转开发ements/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
    }

I had problems with this because when using it in jquery functions I had all sorts of error, mostly toLowerCase() function failing.

So I had to change the actions in a way that they return bool as string (calling ToString() on bool values), so that thay return true or false (in the qoutes) but I kinda don't like it.

How do others handle such a case?


I would use anonymous object (remember that JSON is a key/value pairs):

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
    );
}

And then:

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

Remark: if the selected.calculateTax property is boolean the .NET naming convention would be to call it IsCalculateTax.

0

精彩评论

暂无评论...
验证码 换一张
取 消