asp.net mvc - JQUERY call to Controller Action: String Parameter truncated if containing 'space' character -


i have view accepts 2 string parameters , 2 date values. user hits search button , filtered output screen. works until user inputs string space. i.e. can search 'waste' not 'waste oil'.

interestingly, in latter, parameter ok javascript before call made. on entering controller code goes form being 'waste oil' on client 'waste'. when happens other parameters set null crashing system.

i've tried replacing spaces if present '#' character stripping out , putting in ' ' on controller side. messy fudge , appears work 1 parameter.

there must simple explanation parameter data loss, comments appreciated

not sure code example needed here anyway if help:

my controller header :

    public actionresult indexsearch(int? page, string searchtext,string searchtextsite,string  startdate,string enddate)     { 

my html javascript :

    function search(ssearchtext,ssite) {         ssearchtext = ssearchtext.tostring().replace(" ", "#");         ssite = ssite.tostring().replace(" ", "#");         debugger;         alert($("#absolutepath").val() + "waste.mvc/indexsearch?searchtext=" + ssearchtext + "&searchtextsite=" + ssite + "&startdate=" + $('#startdate').val() + "&enddate=" + $('#enddate').val());         $("#resultslist").load($("#absolutepath").val() + "waste.mvc/indexsearch?searchtext=" + ssearchtext + "&searchtextsite=" + ssite + "&startdate=" + $('#startdate').val() + "&enddate=" + $('#enddate').val(),             function() {                 $('#loadinggif').empty();             });          $('#loadinggif').empty().html('<img src="' + $("#absolutepath").val() + 'content/images/ajax-loader.gif" alt="loading image" />');     } 

you not url encoding parameters when sending ajax request because using string concatenations when building url. use following technique in order have encoded values:

var url = $('#absolutepath').val() + 'waste.mvc/indexsearch';  var data = {     searchtext: ssearchtext,     searchtextsite: ssite ,     startdate: $('#startdate').val(),     enddate: $('#enddate').val() };  $('#resultslist').load(url, data, function() {     $('#loadinggif').empty(); }); 

now correct values on server.


Comments

Popular posts from this blog

linux - Using a Cron Job to check if my mod_wsgi / apache server is running and restart -

actionscript 3 - TweenLite does not work with object -

jQuery Ajax Render Fragments OR Whole Page -