+ (plus) sign in Web API routing

I'm working with an asp.net web api project, and I have to pass an mobile number through a post. But i cannot return a plus sign.

my route:

    name: "SmsRoute",
    routeTemplate: "rest/sms/{country}/{company}/phone/{mobilenumber}",
    defaults: new { controller = "Sms", action = "PostSms" });


public HttpResponseMessage PostSms(string country, string company, string mobilenumber)
    return Request.CreateResponse( HttpStatusCode.Created );

When I run this post method on fiddler:


I'm getting this response:

But I want it to be able to show me the plus sign.

IIS prevents plus-signs from being in URL path elements.

To disable this feature, in web.config:

        <requestFiltering allowDoubleEscaping="true" />

Encode the +:

Replace your feedle input with this one:


Also see: AJAX POST and Plus Sign ( + ) -- How to Encode?


This a common anomaly that we face while adding parameters in the url's. Here you can have a hint of what your OP is and what you might need at a later run

You can have many options as for + you can encode in your java script file using


And also for your ease if you want to add any special characters in your url like a . then simply set the property relaxedUrlToFileSystemMapping in your web.config

<httpRuntime relaxedUrlToFileSystemMapping="true" />

Or you can just add or remove some of the characters to block/allow using requestPathInvalidCharacters in your web.config

<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,*,%,&amp;,:,\,?"/>