السلام عليكــم ورحمـة الله وبركاتــه ،،
واجهتني مشكلة في طريقة التفكير لو يستطيع أحد مساعدتي جزاكم الله خيراً
السؤال:
أي طريقة أفضل لتبديل متغيرات في صفحة html بقيمها من خلال صفحة asp.net؟
يعني لو عندي ضمن صفحة الhtml متغير واحد مثلاً
<body>
<h3>@title</h3>
</body>
المتغير هو title@ أريد أن أستدعي صفحة الhtml وأستبدل @title بقيمة العنوان الحقيقي..
أجد ثلاث طرق لعمل هذا وأنا أبحث عن الطريقة الأفضل:
الأولى: هكذا أفعل في الPage Load
Response.Clear()
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType =
"text/html"
Response.Write(
My.Computer.FileSystem.ReadAllText("index.htm").Replace("@title", GetTitle))
Response.End()
المشكلة هنا أنني وضعت كل كود الصفحة في الذاكرة ثم استبدلت بالقيم ما أظن هذه الطريقة صحيحة.
الطريقة الثانية: أن أحول صفحة الhtml إلى صفحة asp بواسطة أي وسيلة تحويل مثل برنامج easy html to any
ثم أضعها في الPage Load وتكون النتيجة كالتالي:
Response.Write "<body>" & vbCrLf
Response.Write "<h3>" & GetTitle & "</h3>" & vbCrLf
Response.Write "</body>" & vbCrLf
وما أظن هذه الطريقة مناسبة مع الصفحات الطويلة..
الطريقة الثالثة: أن أضمن كود الAsp ضمن صفحة الhtml :
<body>
<h3><% Response.Write (GetTitle) %></h3>
</body>
وهذه الطريقة وجدتها مذكورة في موقع مايروسوفت http://support.microsoft.com/kb/306575/en-us/
ولكن لا أدري إن كانت مناسبة أم أنها ستحول الصفحة عندي إلى (كوكتيل) ASP وHTML
والمصيبة فيها أن كل جزء من الكود يعتبر مستقلاً فلو وضعنا <% dim s as string %> ثم ضمن كتلة أخرى وضعنا <% Response.Write (s) %> فإن الكتلة الأخيرة لا تتعرف على المتغير من الكتلة الأولى..
طبعاً كل هذا لأني لا أريد أن أضع أدوات ASP مباشرة في صفحة الويب هذه.
أرجو التوضيح إن أمكن جزاكم الله خيراً
والسلام عليكم ورحمة الله وبركاته
