asp.net-mvc – ASP.NET mvc 4控制器参数始终为空时发送json到控制器,为什么?
发布时间:2020-05-24 00:21:02 所属栏目:asp.Net 来源:互联网
导读:有一些类似的帖子已经在这里,并尝试每个解决方案建议,仍然不工作…我无法获得控制器内的价值,它总是为空.下面是代码.我错过了什么吗? 客户端javascript function getChart() { JSONString3 = { HAxis : [{ Name : monday }] }; jQuery.ajaxSettings.traditio
|
有一些类似的帖子已经在这里,并尝试每个解决方案建议,仍然不工作…我无法获得控制器内的价值,它总是为空.下面是代码.我错过了什么吗? 客户端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; }
}
希望能帮助人澄清整个画面! (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- RavenDB ASP.NET会话提供程序?
- 休息 – ASP.NET Web Api路由自定义
- asp.net – SignalR和HttpContext / Session
- asp.net-mvc – MVC4 jQuery UI不起作用
- asp.net-mvc – 在ASP.NET MVC中创建ETag过滤器
- asp.net-mvc-4 – 具有动态部分视图创建的MVC Ajax
- asp.net – Visual Studio 2012不发布项目
- Asp.net错误无法加载文件或程序集
- asp.net-mvc – HtmlHelper扩展方法vs部分视图?
- asp.net-mvc – Asp.Net MVC3 RC Razor视图:在块内嵌入代码
推荐文章
站长推荐
- asp.net-mvc – 缓存CSS和JS文件
- .net – TransactionScope:它变得更好了吗?
- 获取Asp.net/iis设置Cache-control:静态文件的m
- asp-classic – 为经典Asp Session Cookie设置HT
- asp.net-mvc – 部分视图中的Razor部分包含
- asp.net-mvc-3 – 如何在VIEW MVC3 Razor中显示w
- asp.net – IIS 7.5无法打开处理程序映射?
- 扩展ASP.NET数据缓存以在Web场之间共享
- 如何从ASP.NET身份获取用户列表?
- “DataSource和DataSourceID都被定义为”使用ASP
热点阅读
