将对象存储为JSON并在Javascript中访问它
Storing object as JSON and accessing it in Javascript
我有一个包含列表的对象,我想使用High chart在视图中使用该列表中的值绘制图表。问题是我正在使用JavaScript,无法从JavaScript访问我的模型。这是我的型号代码。
public class MortgageCalculator
{
public List<double> interest_month = new List<double>();
public void calculations()
{
for(int i=1;i<=this.nPer;i++)
{
this.interest_month.Add(Math.Round(-Financial.IPmt((this.interest / 12) / 100, Convert.ToDouble(i), this.nPer, this.loan_amount),2));
}
}
}
控制器代码:我从用户那里获取值进行计算,更新我的模型,然后重定向到结果页面,该页面应该显示兴趣值的图表
[HttpGet]
public ActionResult M_Calculator()
{
var mortgageCalculator = new MortgageCalculator();
return View(mortgageCalculator);
}
[HttpPost]
public ActionResult M_Calculator(MortgageCalculator mortgageCalculator)
{
UpdateModel(mortgageCalculator);
//call calculation functions here
mortgageCalculator.Amortization();
return View("Results",mortgageCalculator);
}
我的视图代码:
@model Calculators.Models.MortgageCalculator
@{
ViewBag.Title = "Results";
}
@Scripts.Render("~/Scripts/lineChart.js")'
<div id="container" style="min-width:310px; height:400px; margin:0 auto">
@section scripts
{
<script src="~/Scripts/highcharts.js"></script>
<script src="~/Scripts/highcharts.src.js"></script>
<script src="~/Scripts/lineChart.js"></script>
}
</div>
我想从我的JavaScript行chart.js中的模型访问列表并绘制图表。我想我需要使用JSON,但我不知道如何使用。如果有任何帮助,我将不胜感激。
感谢
您可以通过两种方式来实现这一点。一种是使用jQuery来检索JSON对象,并更改Action以返回JsonResult(更简单的方法是IMO)。另一种方法是通过使用C#创建字符串来创建JavaScript对象。
1.使用jQuery检索JSON对象
更改您的Action以返回Json而不是View。
public ActionResult M_Calculator()
{
var mortgageCalculator = new MortgageCalculator();
mortgageCalculator.calculations();
return Json(mortgageCalculator.interest_month); // return only the array
}
在您的视图中,您可以使用jQuery来检索JSON对象,如下所示。
<script type="text/javascript">
var calcURL = '@Url.Action("M_Calculator", "MyController")';
var interestMonthsArray = [];
$.getJSON(calcURL, function (data) {
interestMonthsArray = data;
});
</script>
2.使用C#创建JSON对象
在您看来:
@model Calculators.Models.MortgageCalculator
@{
ViewBag.Title = "Results";
bool first = true;
string arrStr = "[";
foreach (var month in Model.interest_month)
{
if (first)
{
first = false;
}
else
{
arrStr += ",";
}
arrStr += month;
}
arrStr += "]";
}
....
<script type="text/javascript">
var interestMonthsArray = @arrStr;
</script>
当然,您也可以在Action中,甚至在模型类中创建这个字符串。
相关文章:
- 从JavaScript访问struts操作中的属性
- 通过 javascript 访问类
- 如何使用JavaScript访问HTML链接内容
- 使用javascript访问php变量
- Javascript-访问对象
- 使用Oauth使用Javascript访问Api
- 通过JavaScript访问需要身份验证的页面
- 如何使用javascript访问sails.js模型中的属性
- 用javascript访问数组中的数组
- 从Symfony2中的javascript访问php变量
- 从Middleman中的Javascript访问config.rb
- 如何从javascript访问表单数据
- 创建一个html表单并使用javascript访问中的python脚本
- 使用JavaScript访问Chrome扩展的剪贴板
- 如何从javascript访问sqlite3数据库表值
- 如何从 JavaScript 访问 Sign Applelet 方法
- JavaScript:访问继承子模块中的“封闭”变量
- 使用 FourSquare API 和 javascript 访问场地提示
- 如何从javascript访问MySql数据库的数据
- 如何通过 javascript 访问参数化函数背后的代码