سؤال

ولدي مجموعة من صفحات الويب ASP.NET (التي لديها تخطيط قياسي) التي هي وثائق المنتج. أريد إنشاء نوعا من الصفحة مزيج من شأنها أن سحب كافة محتويات الصفحة آخرين في سلسلة ولهم في صفحة واحدة طويلة.

لن تعمل

وب IFrames لأنني لا أعرف حجم كل صفحة. أنا يمكن أن يكون لها صفحة مزيج القيام طن من #includes، والتي من شأنها أن تعمل، ولكن أنا لا أريد أن يكون للحفاظ على تحديث رئيسية لتاريخ (لدينا قاعدة بيانات لأسماء الصفحات التي يمكن أن تتغير مع مرور الوقت).

وأخيرا أنا بعد شيء يمكن أن تحصل على قائمة من الصفحات، ولكل واحد يفعل ما يعادل # تشمل لهذه الصفحة في الصفحة الحالية.

وآمل أن من المنطقي. أي أفكار؟

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

المحلول

هل لديك "وثائق صفحات" أتش تي أم أل ثابت أو .aspx اتصال أيضا ...

وإذا كان محتواها فقط ثابت، هل يمكن أن تفعل ما يلي

//assume that the array of page names has come from the DB.
protected void Page_Load(object sender, EventArgs e)
{
    string[] pages = new string [] { "~/Default.html", 
             "~/Default2.html", "~/Default3.html", "~/Default4.html" };

    foreach (string p in pages)
    {
        Response.WriteFile(p);
    }
}

نصائح أخرى

وماذا صفحاتك تبدو وكأنها؟

وأفترض انها مجرد HTMLs واضحة ولها نمط ثابت في جميع صفحات، أليس كذلك؟ مثل، لديها علامات HTML المناسبة جنبا إلى جنب مع الرأس والجسم وكذا؟

في هذه الحالة يمكنك فقط قراءتها مثل كنت قراءة الملفات النصية العادية والقيام ببعض سلسلة تحليل عليها لاستخراج جزء داخل علامتي BODY وبعد ذلك يمكنك فقط سلسلة تلك وطباعتها ASP- # تشمل الاسلوب.

لتحصل على اسم المسار الفعلي للملف على موقع ASP.NET، يمكنك استخدام Server.MapPath

var actualDiskFilename = Server.MapPath("~/somewhere/somepage.html");

وجميع الطبقات System.IO تعمل نفس الشيء في ASP.NET، لجلب قائمة الملفات في دليل ظاهري، يمكنك القيام به:

var virtualDir = "~/somefolder/";
var actualDir = Server.MapPath(virtualDir);

var files = Directory.GetFiles(actualDir);

هل هذا ما كنت تبحث عنه؟

إذا الصفحات هي ASPX وثائق يمكنك استخدام Server.Execute لتنفيذ الصفحة والعودة HTML المولد. ثم يمكنك تحليل أتش تي أم أل وإزالة هولست والجسم العلامات وسلسلة أتش تي أم أل المتبقية في صفحتك.

وأنت تقول سوف IFRAMES لا تعمل لأنك لا تعرف الأحجام؟ حسنا لماذا لا يتم تحديث حجم IFRAMES وفقا لحجم.

وإنشاء الحجم IFRAME الافتراضي وتحميل الصفحة، ثم من خلال المعونة جافا سكريبت التحديث الحجم. يجب أن ننظر في بعض إطار جافا سكريبت مثل النموذج أو مسج

ويبدو لي ان يجب إعادة النظر في شكل منذ البداية، إن أمكن. إذا كنت تخزين المحتوى في قاعدة بيانات أو ملفات XML، على سبيل المثال، ثم الصفحات الفردية الخاصة بك يمكن أن تكون وقسم لهم، وصفحة تكتل الخاص بك يمكن أن تكون فوق أي مزيج من المجموع الذي تريده.

ولن يكون من الصعب على اعتناق إذا كنت تتحدث بضع صفحات (أقل من عشرة) فقط. ثم حفظ الوثائق حتى الآن هي مسألة تحرير المحتوى، وليس ملفات العرض (باعتراف الجميع، XML أسهل من قاعدة بيانات في هذا الصدد).

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