asp.net-mvc – ASP.NET mvc 4控制器参数始终为空时发送json到控
发布时间:2020-12-15 23:47:44 所属栏目:asp.Net 来源:网络整理
导读:有一些类似的帖子已经在这里,并尝试每个解决方案建议,仍然不工作…我无法获得控制器内的价值,它总是为空.下面是代码.我错过了什么吗? 客户端javascript function getChart() { JSONString3 = { HAxis : [{ Name : "monday" }] }; jQuery.ajaxSettings.tradi
有一些类似的帖子已经在这里,并尝试每个解决方案建议,仍然不工作…我无法获得控制器内的价值,它总是为空.下面是代码.我错过了什么吗?
客户端javascript function getChart() { JSONString3 = { HAxis : [{ Name : "monday" }] }; jQuery.ajaxSettings.traditional = true; $.ajax({ url: "@Url.Action("getChart","SBM")",type: 'POST',contentType: 'json',dataType: 'html',data: JSONString3,success: function (data) { var imagestring = btoa(data); $('#ChartImage').attr('src',"data:image/png;base64," + imagestring + "?" + new Date().getTime()); } }) jQuery.ajaxSettings.traditional = false; } MVC控制器 [Authorize] [HttpPost] public ActionResult getChart(YAxis HAxis) { YAxis XAxisvalue = HAxis; Charts chart = new Charts(); MemoryStream ms = new MemoryStream(); chart.Chart.SaveImage(ms); string image = Convert.ToBase64String(ms.GetBuffer()); return File(ms.GetBuffer(),"image/png","Chart.png"); } 模型 public class YAxis { public string Name { get; set; } } 解决方法
谢谢各位的指导和解决方案.该解决方案是您的所有建议的组合,所以我决定在一个帖子中进行整理.
解决问题的方法如下: > contentType应该是application / json(如上面提到的Ant P) 客户端javascript function getChart() { JSONString3 = { "Name" : "monday" }; jQuery.ajaxSettings.traditional = true; $.ajax({ url: "@Url.Action("getChart",contentType: 'application/json',data: JSON.stringify(JSONString3),success: function (data) { var imagestring = btoa(data); $('#ChartImage').attr('src'," + imagestring + "?" + new Date().getTime()); } }) jQuery.ajaxSettings.traditional = false; } MVC控制器 [Authorize] [HttpPost] public ActionResult getChart(YAxis HAxis) { YAxis XAxisvalue = HAxis; Charts chart = new Charts(); MemoryStream ms = new MemoryStream(); chart.Chart.SaveImage(ms); string image = Convert.ToBase64String(ms.GetBuffer()); return File(ms.GetBuffer(),"Chart.png"); } 模型 public class YAxis { public string Name { get; set; } } 而不是这样: JSONString3 = { "Name" : "monday" }; 我们做得到: var JSONString3 = {}; JSONString.Name = "monday"; 但是我们还需要在发布给控制器之前对对象进行字符串化
客户端javascript function getChart() { //first json object //note: each object Property name must be the same as it is in the Models classes on server side Category = {}; Category.Name = "Category1"; Category.Values = []; Category.Values[0] = "CategoryValue1"; Category.Values[1] = "CategoryValue2"; //second json object XAxis = {}; XAxis.Name = "XAxis1"; XAxis.Values = []; XAxis.Values[0] = "XAxisValue1"; XAxis.Values[1] = "XAxisValue2"; //third json object YAxis = {}; YAxis.Name = "YAxis1"; //convert all three objects to string //note: each object name should be the same as the controller parameter is!! var StringToPost = JSON.stringify({CategoryObject : Category,XAxisObject : XAxis,YAxisObject : YAxis}); $.ajax({ url: "@Url.Action("getChart",contentType: "application/json",data: StringToPost,success: function (data) { var imagestring = btoa(data); $('#ChartImage').html(data); } }) } MVC控制器 [HttpPost] public ActionResult getChart(Category CategoryObject,XAxis XAxisObject,YAxis YAxisObject) { //do some stuff with objects here and return something to client return PartialView("_Chart"); } 类别模型 public class Category { public string Name { get; set; } public List<string> Values { get; set; } } XAxis模型 public class XAxis { public string Name { get; set; } public List<string> Values { get; set; } } YAX模型 public class YAxis { public string Name { get; set; } } 希望能帮助人澄清整个画面! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 使用外部connectionStrings.config文件进行WebP
- asp.net-mvc – 如果ASP.NET MVC中的用户匿名,则重定向到自
- Asp.net MVC – 多语言网站
- asp.net – 如何防止网页上的CSS缓存?
- asp.net – 尝试通过方法’HttpConfiguration..ctor(HttpRo
- asp.net-mvc – MVC DateTime验证失败
- asp.net – 如何在Web应用程序中获取Client Machine的Mac地
- asp.net-mvc – Basic Umbraco 6.1.1 SurfaceController问题
- 在同一端口上运行多个ASP.NET Core RC2应用程序
- asp.net – 如何传递单选按钮值来过滤数据
推荐文章
站长推荐
- asp.net – 每5秒自动刷新一次Updatepanel
- asp.net-mvc – Mvc 3 Razor:使用部分部分视图?
- asp.net – 我应该在我的HttpHandler中设置IsReu
- asp.net-mvc – MVC DDD:可以将存储库与控制器中
- asp.net – ASPXGridView ClientSideEvents如何获
- [ASP.NET Core 2.0 前方速报].NET Core 2.0.3&am
- asp-classic – Classic ASP中的Response.Flush导
- asp.net-mvc – asp mvc使用View Model在视图中列
- asp.net – 通过控件循环
- ASP.NET MVC之如何看待内置配置来提高性能优化(四
热点阅读