سؤال

أنا أعمل على موقع على شبكة الإنترنت التي سوف التبديل إلى نمط جديد في الموعد المحدد.الموقع بنيت في الدلالي HTML و CSS ، وبالتالي فإن التغيير يجب أن تتطلب فقط CSS إشارة تغيير.أنا أعمل مع المصمم الذي سوف تحتاج إلى أن تكون قادرا على رؤية كيف تبدو ، وكذلك العميل الذي سوف تحتاج إلى أن تكون قادرة على استعراض تحديثات المحتوى في نظرة الحالي فضلا عن التقدم المحرز في التصميم على نظرة جديدة.

أنا تخطط لاستخدام السحر سلسلة استعلام مواقع المعلومات القيمة و / أو جافا سكريبت الموجود في تذييل الصفحة التي يكتب بها ملف تعريف الارتباط لتحديد الجديد CSS الصفحة.نحن نعمل في ASP.NET 3.5.أي التوصيات ؟

أود أن أذكر أن نستخدم أي المشروط تعليق ل IE8 ، 7 ، 6 الدعم.قد خلق وظيفة التي لا بديل:

<link href="Style/<% GetCssRoot() %>.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 8]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie8.css" rel="stylesheet" />
<![endif]-->
<!--[if lte IE 7]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie7.css" rel="stylesheet" />
<![endif]-->
<!--[if lte IE 6]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie6.css" rel="stylesheet" />
<![endif]-->
هل كانت مفيدة؟

المحلول

في Asp.net 3.5, يجب أن تكون قادرة على إعداد رابط الوسم في رأس خادم الوسم.ثم في codebehind يمكنك تعيين href الملكية على الرابط عنصر استنادا إلى ملف تعريف الارتباط قيمة querystring, تاريخ, الخ.

في aspx:

<head>
  <link id="linkStyles" rel="stylesheet" type="text/css" runat="server" />
</head>

و في التعليمات البرمجية:

protected void Page_Load(object sender, EventArgs e) {
  string stylesheetAddress = // logic to determine stylesheet
  linkStyles.Href = stylesheetAddress;
}

نصائح أخرى

يجب أن ننظر إلى ASP.NET المواضيع, هذا هو بالضبط ما كنت تستخدم ل.أنها تسمح لك أيضا أن الجلد الضوابط ، مما يعني منحهم مجموعة من السمات الافتراضية.

أود أن أقترح تخزين أنماط التحديد في الدورة حتى لا تضطر إلى الاعتماد على querystring مفتاح التواجد في كل وقت.يمكنك التحقق من الدورة في Page_Load وإضافة المناسبة الأنماط المرجعية.يبدو أن هذا هو مؤقت/حالة التنمية ، لذلك يذهب مع كل ما هو سهل و يعمل.

if (!String.IsNullOrEmpty(Request.QueryString["css"]))
  Session.Add("CSS",Request.QueryString["css"]);

وأود أن تفعل ما يلي:

www.website.com/?stylesheet=new.css

ثم في ASP.NET كود:

if (Request.Querystring["stylesheet"] != null) {
    Response.Cookies["stylesheet"].Value = Request.QueryString["stylesheet"];
    Response.Redirect(<Current Page>);
}

ثم أين يمكنك تحديد الأنماط:

if (Request.Cookies["stylesheet"] != null) {
    // New Stylesheet
} else {
    // Default
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top