asp.net mvc not getting value from ajax when converting data into json.stringify

I am using a event handler that checks if the product id or name already exist. But my problem is when I am using JSON.stringify() my C# controller does not receive the data from the ajax call,.

 // check if Product name already exist
    $('#productName').bind('keyup blur', function () {
        // check if input is empty
        if ($(this).val().length > 0) {
            var data = JSON.stringify({
                value: $(this).val(),
                fieldName: 'productName'
            });
            $.ajax({
                type: "post",
                url: '/Product/ValidateProductDetailsExist',
                contenttype: "application/json; charset=utf-8",
                datatype: "json",
                data: data,
                context: this,
                success: function (result) {
                    if (result === true) {
                        // append error message
                        // check if error message already exist
                        if ($('#errorprodcutName').length === 0) {
                            var errormessage = '<div class="col-md-offset-2"><span id = "errorprodcutName" class="validation-error-message">Product name already exist</span></div >';
                            $('.form-group:nth-child(2)').append(errormessage);
                        }
                        $(this).focus();
                        //disables the save button
                        $('#btnSaveProduct').prop('disabled', true);
                    }
                    else {
                        // check if error message already exist
                        if ($('#errorprodcutName').length > 0) {
                            $('#errorprodcutName').remove();
                        }
                        //enables the save button
                        $('#btnSaveProduct').prop('disabled', false);
                    }
                },
                error: function () {
                    alert("unable to request from server");
                }
            });
        }
    });

When I use debugger to check the value, it is null. I don’t see any errors that displays in the console as well. Can anyone please explain to me why it is not working.

public JsonResult ValidateProductDetailsExist(string value, string fieldName)
    {
        using (POSEntities3 db = new POSEntities3())
        {
            bool isExist = false;

            switch (fieldName)
            {
                case "productId":
                    var dataItemProductId = db.Products.Where(product => product.product_id == value).SingleOrDefault();
                    isExist = (dataItemProductId != null);
                    break;
                case "productName":
                    var dataItemProductName = db.Products.Where(product => product.name == value).SingleOrDefault();
                    isExist = (dataItemProductName != null);
                    break;
            }

            return Json(isExist, JsonRequestBehavior.AllowGet);
        }
    }