Goodmorning. Im working on MVC project with Angular and im using a JsonResult to return a Json from a list that i have with emails with the specific date.
Here is my ajax call from angular
myApp.service('mailService', function ($http) {
this.getEmailByDate = function (date) {
return $http.get("/Home/ShowEmailByDate/", { params: { date: date } });
};
});
My JsonResult in Controller
public JsonResult ShowEmailByDate(string date)
{
var selectedMsg = ClassHelper.listMsg;
var result = selectedMsg.Select(s => new
{
From = s.From.RawValue,
Date = s.Date.ToString("F"),
searchDate = s.Date.ToString("dd/MM/yyyy"),
sortDate = s.Date.ToString("M"),
sortTime = s.Date.ToString("t"),
Subject = s.Subject,
Body = s.BodyHtml,
Attachments = s.AttachmentFiles.Count(),
Files = s.AttachmentFiles.Select(f => f.FileName)
})
.Where(s => s.searchDate == date)
.OrderByDescending(s => s.sortDate)
.ThenByDescending(s => s.sortTime);
return Json(result, JsonRequestBehavior.AllowGet);
}
Now the problem that i have exists only in IE. On chrome and firefox is working fine. The link that i see in developer mode in Network tab when i execute the ajax call is like
htttp://localhost:0000/Home/ShowEmailByDate/?date=%E2%80%8E23%E2%80%8E%2F%E2%80%8E12%E2%80%8E%2F%E2%80%8E2015
So im getting an empty array result []
In Firefox and Chrome the link looks like
htttp://localhost:0000/Home/ShowEmailByDate/?date=22%2F12%2F2015 and its working fine.
the date param is a string like 22/12/2015 'dd/M/yyyy'
Any ideas? Thanks!
You decode Url and then use it. because after decoding all output url of IE, chrome and firefox are same as you want.
Use decodeURI() function to decode a URI.
var uri = "%E2%80%8E23%E2%80%8E%2F%E2%80%8E12%E2%80%8E%2F%E2%80%8E2015";
var dec = decodeURI(uri);
var res = "Decoded URI: " + dec;
document.getElementById("demo").innerHTML = res;
<p id="demo"></p>
</div>