Yeni asp.net grafik kontrolleri - MVC ile (sonunda) çalışacaktır?
Scott Gu sadece grafik denetimleri tarafından dağıtımı yapılan yeni bir dizi yayınlanmıştır .NET ekibi. Harika görünüyorlar: http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx
Milyon dolarlık bir soru ... ne zaman olursa MVC ile çalışacak.
CEVAP
İki şekilde grafik denetimleri kullanabilirsiniz:
Üreten bir Kumanda Görüntüsü
Grafik oluşturmak ve bir eylem (Chatuman dir olarak düşünüyorum): görüntü olarak döndürerek
Chart chart = new Chart();
chart.BackColor = Color.Transparent;
chart.Width = Unit.Pixel(250);
chart.Height = Unit.Pixel(100);
Series series1 = new Series("Series1");
series1.ChartArea = "ca1";
series1.ChartType = SeriesChartType.Pie;
series1.Font = new Font("Verdana", 8.25f, FontStyle.Regular);
series1.Points.Add(new DataPoint {
AxisLabel = "Value1", YValues = new double[] { value1 } });
series1.Points.Add(new DataPoint {
AxisLabel = "Value2", YValues = new double[] { value2 } });
chart.Series.Add(series1);
ChartArea ca1 = new ChartArea("ca1");
ca1.BackColor = Color.Transparent;
chart.ChartAreas.Add(ca1);
using (var ms = new MemoryStream())
{
chart.SaveImage(ms, ChartImageFormat.Png);
ms.Seek(0, SeekOrigin.Begin);
return File(ms.ToArray(), "image/png", "mychart.png");
}
WebForms Tarzı
Bu sayede sadece grafiği vardır .görünümler (sadece geleneksel web formları gibi) SEO. Bunun için web sitenizin ilgili bit kanca gerekecek.config
<controls>
...
<add tagPrefix="asp"
namespace="System.Web.UI.DataVisualization.Charting"
assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
<httpHandlers>
...
<add path="ChartImg.axd"
verb="GET,HEAD"
validate="false"
type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</httpHandlers>
<handlers>
...
<add name="ChartImageHandler"
preCondition="integratedMode"
verb="GET,HEAD"
path="ChartImg.axd"
type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</handlers>
Grafiği oluştururken DataPoint unsurları içinde kod kaçamazsın, veri kanca Görünüm sınıfında bir yöntem gerekir. Bu benim için iyi çalışır. Çalışma bu şekilde kontrol render resim grafik denetimi http işleyicisi tarafından oluşturulan bir URL sağlar. Dağıtımınızda resimleri önbelleğe bunun için yazılabilir bir klasör vermeniz gerekir.
* VS 2010 / .NET 4 * Destek
Bu çalışma almak için .NET 4 uygun ortak anahtar belirteci sürüm 4.0.0.0 için grafik referansları değiştirmek gerekir.
Ayrıca grafik kontrol isteği şimdi rota yerine geçerli istek için URL yolunu oluşturur. Benim için herşey grafik istekleri /{Controller}/ChartImg.axd ve Benzerleri yolları tarafından bloke edildi çünkü 404 hataları sonuçlandı anlamına geliyordu. Bunu düzeltmek için benim kullanımları kapsayan ekstra İgnoreRoute aramalar ekledim, daha genel bir çözüm daha iyi olurdu:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("ChartImg.axd/{*pathInfo}");
routes.IgnoreRoute("{controller}/ChartImg.axd/{*pathInfo}");
routes.IgnoreRoute("{controller}/{action}/ChartImg.axd/{*pathInfo}");
...

Dosyanın sonunda yeni satır...
Nasıl Eclipse her dosyanın sonunda yen...
Dosyanın Sonunda Otomatik olarak yeni ...
"dosya" sonunda yeni satır; d...
Otomatik olarak curl yanıt vücudun son...