Try creating your own toJSON method on your view-model and strip out the unnecessary white-space yourself. knockout has two functions toJS and toJSON. you can use toJS to get the current values as a javascript Object or use toJSON to get the string representation.
This is just off the top of my head and i'm not sure if it works but something like this.
self.prototype.toJSON = function(){
var data = ko.toJS(self.NewCustomerPromotion);
return {
name: data.nameForRegularCustomer.trim(),
description: data.promotionDescForRegularCustomer.trim(),
keywords: data.keywordForRegularCustomer.trim(),
happyMessage: data.promotionMsgForRegularCustomer.trim(),
status: data.statusForRegularCustomer.trim(),
promotionCustomerType: data.promotionCustomerType.trim()
};
};
This will return an object that is ready to be serialized with the ko.toJSON to be sent over the wire.
Here is a blog post explaining in greater detail http://www.knockmeout.net/2011/04/controlling-how-object-is-converted-to.html