As you are doing HttpPost the following values:
var productCalcaulationModel = {
ProductId: $('input[attributeName="ProductID"]').val(),
DealWorkFlowProductID: $('input[attributeName="WorkFlowID"]').val(),
ExistingTariff: $('input[attributeName="Existing Rate"]').val(),
CalculationAttributes: '',
SimpleAttributes: simpleAttributes
};
which are html controls gets set to empty as HTTP is a stateless protocol.
Try passing some dummy values hardcoded in the above parameters for testing purpose