我有一个简单的.cshtml页面,我的问题是当我运行此页面时,警报未显示。这是.cshtml页面代码:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>ChartDataJSON</title>
<script type="text/javascript">
alert('hello');
</script>
</head>
<body>
<div>
<div id="chart1" ></div>
</div>
</body>
</html>
此外,我还有一个控制器类,通过它可以生成此视图。在该类中写的行是:
public class jqPlotController : Controller
{
//
// GET: /jqPlot/
public ActionResult Index()
{
return View();
}
public ActionResult ChartDataJSON()
{
var chartData = new List<jqplotModel>();
var point1 = new jqplotModel { Date = DateTime.Now.Date.ToString("yyyy-MM-dd h:mmtt"), Demand = Convert.ToDouble(1), Supply = Convert.ToDouble(3) };
var point2 = new jqplotModel { Date = DateTime.Now.AddDays(10).Date.ToString("yyyy-MM-dd h:mmtt"), Demand = Convert.ToDouble(2), Supply = Convert.ToDouble(4) };
var point3 = new jqplotModel { Date = DateTime.Now.AddDays(31).Date.ToString("yyyy-MM-dd h:mmtt"), Demand = Convert.ToDouble(6), Supply = Convert.ToDouble(6) };
var point4 = new jqplotModel { Date = DateTime.Now.AddDays(106).Date.ToString("yyyy-MM-dd h:mmtt"), Demand = Convert.ToDouble(4), Supply = Convert.ToDouble(2) };
chartData.Add(point1);
chartData.Add(point2);
chartData.Add(point3);
chartData.Add(point4);
return Json(chartData, JsonRequestBehavior.AllowGet);
}
}
这是由于控制器类中的“return”关键字阻止警报弹出显示在网页上。
以前是否有人遇到过此类问题。有人可以帮我弄清楚问题吗?
编辑: 视图是关于控制器类的ChartDataJSON方法添加的。
更新:我在视图中进行了以下更改,控制器类如上所述。
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>ChartDataJSON</title>
<script type="text/javascript">
$.ajax("/jqPlot/ChartDataJSON")
.done(function (data) {
// do something with the data.
alert("success");
})
</script>
</head>
<body>
<div>
<div id="chart1" ></div>
</div>
</body>
</html>
答案 0 :(得分:0)
返回JSON结果时,您不会渲染任何视图(HTML标记)。要返回HTML标记,您必须编写此
return View("name of cshtml file without .cshtml");
其中[name of view]是您所引用的cshtml文件的名称(没有.cshtml扩展名),模型可以是您要在cshtml文件中使用的数据。
要使用ajax检索数据,您可以使用此命令作为示例
$.ajax( "/jqPlot/ChartDataJSON" )
.done(function(data) {
// do something with the data.
alert( "success" );
})
更新: 要加载视图,您必须调用返回并呈现视图的操作。假设您的视图名为Index.cshtml,其完整路径为“Views / jqPlotController / Index.cshtml” 然后,您所要做的就是调用操作的URL,http:// [nameofdomain] / Index。 然后应该加载视图并且javascript函数触发并调用动作ChartDataJSON,它将返回JSON结果,在这种情况下,如果对动作的调用成功,则触发警报。