سؤال

ولدي مشكلة عندما تستخدم Mschart على مشروع MVC بلدي، عندما استخدم صفحة الفهرس الأولى من مشروع لتقديم لالجزئي عرض اسم index2 هو رمز

<% Html.RenderPartial("Index2"); %>

ولكن عندما تشغيله الخطأ يحدث فيها الرسالة

وCS0029: لا يمكن ضمنيا تحويل نوع 'ASP.views_home_index2_ascx' إلى 'System.Web.UI.Page'

وقال -من أن سطر المشكلة من التعليمات البرمجية

و: // تجعل عنصر التخطيط

والخط 52: Chart2.Page = هذا. << في هنا

والخط 53: الكاتب HtmlTextWriter = جديد                                                 HtmlTextWriter (Page.Response.Output)؛

والخط 54: Chart2.RenderControl (الكاتب)؛

ولكن عندما أضع كل من التعليمات البرمجية في Index2.ascx إلى index.aspx وليس لتقديم نظرة جزئية أنها تعمل بشكل جيد

وقانون Index2.ascx هو

 <%   
            System.Web.UI.DataVisualization.Charting.Chart Chart2 = new System.Web.UI.DataVisualization.Charting.Chart();
            Chart2.Width = 412;
            Chart2.Height = 296;
            Chart2.RenderType = RenderType.ImageTag;

            Chart2.Palette = ChartColorPalette.BrightPastel;
            Title t = new Title("No Code Behind Page", Docking.Top, new System.Drawing.Font("Trebuchet MS", 14, System.Drawing.FontStyle.Bold), System.Drawing.Color.FromArgb(26, 59, 105));
            Chart2.Titles.Add(t);
            Chart2.ChartAreas.Add("Series 1");

            Chart2.Series.Add("Series 1");

            // add points to series 1
            Chart2.Series["Series 1"].Points.AddY(3);
            Chart2.Series["Series 1"].Points.AddY(4);
            Chart2.Series["Series 1"].Points.AddY(5);

            Chart2.BorderSkin.SkinStyle = BorderSkinStyle.Emboss;
            Chart2.BorderColor = System.Drawing.Color.FromArgb(26, 59, 105);
            Chart2.BorderlineDashStyle = ChartDashStyle.Solid;
            Chart2.BorderWidth = 2;

            Chart2.Legends.Add("Legend1");

            // Render chart control
            Chart2.Page = this;
            HtmlTextWriter writer = new HtmlTextWriter(Page.Response.Output);
            Chart2.RenderControl(writer);

و٪>

هل كانت مفيدة؟

المحلول

ولا يبدو الخطأ تشير إلى ما هو مطلوب أن يكون داخل صفحة ASP.NET، ربما لأنه مع التغيرات في التصميم MVC وكيف وجهات النظر لا حقا استخدام جمع الصفحة / سيطرة.

لتبسيط هذه العملية، هل يمكن أن يخلق أسلوب مساعد HTML أن يفعل أكثر من هذا العمل بالنسبة لك بطريقة قابلة لإعادة الاستخدام. أيضا، قد تتمكن من محاولة استخدام وتضمين مجرد السيطرة داخل الصفحة أيضا كبديل. إذا كنت تريد أن تفعل الطريق المساعد، يمكنك القيام به:

public static class ChartExtensions
{
   public static string Chart(this HtmlHelper html, <settings>)
   {
     //Put code here, return a string
   }
}

وHTH.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top