I have Model
public class SomeModel
{
public string SomeText { get; set; }
}
In javascript I make an javascript object literal of the model:
var model = {
SomeText: "test"
};
var serializedData = JSON.stringify(model);
This makes a string which looks like the following:
"{"SomeText":"test"}"
Now suppose I want to send this model to a controller which accepts a model like this with the following function:
public void Index(SomeModel model)
{
}
What I need is an url string in which the model has the following form:
"?SomeText=test"
I know that ajax does exactly this when you send the model via ajax post:
$.ajax({type:"POST",
url: "someUrl",
data: serializedData,
...
});
The 'data:' url-encodes the serialized data.
But I actually do not want to use ajax, so I need to build this url myself. I want to do exactly the same thing as ajax does with 'data:'. How can I url-encode the serialized data myself?
You should use jQuery.param
:
$.param({foo:'bar', fizz:'buzz'});
//produces foo=bar&fizz=buzz
Arrays are ok too:
$.param({foo:['bar', 'baz']});
//produces foo%5B%5D=bar&foo%5B%5D=baz
//which is the url encoded form of: foo[]=bar&foo[]=baz
if you need the traditional array syntax, use the second parameter:
$.param({foo:['bar','baz']}, true);
//produces foo=bar&foo=baz
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With