早安。 我正在使用Angular处理MVC项目,我正在使用JsonResult从具有特定日期的电子邮件列表中返回Json。
这是我从角度
的ajax调用myApp.service('mailService', function ($http) {
this.getEmailByDate = function (date) {
return $http.get("/Home/ShowEmailByDate/", { params: { date: date } });
};
});
我在控制器中的JsonResult
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);
}
现在问题我只存在于IE中。在chrome和firefox工作正常。我执行ajax调用时在网络选项卡中以开发人员模式看到的链接就像
htttp://localhost:0000/Home/ShowEmailByDate/?date=%E2%80%8E23%E2%80%8E%2F%E2%80%8E12%E2%80%8E%2F%E2%80%8E2015
所以我得到一个空数组结果[]
在Firefox和Chrome中,链接看起来像
htttp://localhost:0000/Home/ShowEmailByDate/?date=22%2F12%2F2015 and its working fine.
日期参数是一个像22/12/2015'dd / M / yyyy'的字符串
有什么想法吗?谢谢!
答案 0 :(得分:1)
您解码Url然后使用它。因为解码IE的所有输出url后,chrome和firefox都是你想要的。
使用 decodeURI()函数解码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>
&#13;