我是一个相当陌生的ASP.NET(已经在WPF中编写了很长时间,但是是ASP的新手)并且我试图创建一个显示四个饼图的仪表板应用程序。我已按照this链接上的说明操作,但我要么在整个页面上显示图表,要么在图片损坏时显示(就像<img>
来源无效一样)
有人可以向我解释如何实现这种行为吗?我只是想在我的页面上显示一个简单的饼图,就是它。
谢谢! (对不起,如果这是一个重复的帖子,我发现了其他类似的问题,但没有使用Razor语法)
编辑 - 这是我的代码:
Index.cshtml:
<!DOCTYPE html>
<html>
<head>
<title>Chart Example</title>
</head>
<body>
<h1>Chart Example</h1>
<p>
The following chart is generated by the <em>ChartView.cshtml</em> file, but is shown
in this page.
</p>
<p><img src="ChartView.cshtml" /> </p>
</body>
</html>
我的ChartView.cshtml :(与Index.cshtml位于同一文件夹中)
@{
var myChart = new Chart(600, 400)
.AddTitle("Employees")
.AddSeries(chartType: "column",
xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" },
yValues: new[] { "2", "6", "4", "5", "3" });
if (myChart != null)
{
myChart.Write();
}
}
答案 0 :(得分:3)
您无法返回.cshtml
文件(除非您危险地使用各种内部设置 - 不推荐)。
您应该指向action
。
最简单的测试方法是直接在浏览器中打开src
- 在这种情况下&#34; ChartView.cshtml&#34;并且你应该获得404。
您需要向控制器添加一个返回视图的操作。
public HomeController : Controller
{
public ActionResult ChartView()
{
return View();
}
然后
<img src='@Url.Action("ChartView", "Home")' alt="Chart"/>
您可以在浏览器中打开来测试:
/Home/ChartView
(这假设ChartView.cshtml位于文件夹&#34; Views / Home&#34;)
当您对MVC不熟悉时,快速解释一下。有一个&#39; routeConfig.cs&#39;它将传入的URL路由到控制器(类)上的动作(方法)。控制器加载视图(cshtml)并应用所有服务器端代码,然后将呈现的html返回给用户。
您不直接导航到cshtml页面,而是通过网址导航到操作。
默认路由配置为您提供以下网址:
http://[site]/[controller]/[action]
注意[控制器]不包括&#34;控制器&#34;,所以&#34; HomeController&#34;成为&#34; / Home /&#34;
此外,按照惯例,如果您未在&#39; View()&#39;中指定视图名称?然后它将在您的解决方案文件夹中查找&#34; / Views / [controller] / [action] .cshml&#39; (以及其他位置,例如&#39; / Views / Shared / [action] .cshtml&#39;(也可配置,但这些是默认设置)。
答案 1 :(得分:1)
或者你可以使用图表助手
http://www.asp.net/web-pages/overview/data/7-displaying-data-in-a-chart
更改为:
@{
var myChart = new Chart(600, 400)
.AddTitle("Employees")
.AddSeries("SomeName",chartType: "Pie",
xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" },
yValues: new[] { "2", "6", "4", "5", "3" });
if (myChart != null)
{
myChart.Write();
}
}
你必须在iis或某个开发服务器上吃午餐