تضمين ContentPlaceholder بين عروض الأسعار المزدوجة
-
03-07-2019 - |
سؤال
أنا أستخدم .NET MVC ، وداخل صفحات العرض ، قمت بتعيين حامل ContentPlacehals يحتوي على معرف ليتم استخدامه على الصفحة الرئيسية مثل SO:
عرض الصفحة:
<asp:Content ID="CDomBodyId" ContentPlaceHolderID="DomBodyId" runat="server">LmpDemoRequests</asp:Content>
صفحة رئيسية:
<body id='<asp:ContentPlaceHolder ID="DomBodyId" runat="server"></asp:ContentPlaceHolder>'>
لذلك في هذه الحالة بالذات ، ستجعل علامة الجسم هكذا على صفحة HTML النهائية:
<body id='LmpDemoRequests'>
أرغب في الحصول على علامات اقتباس مزدوجة حول علامة معرف الجسم ، لكن تقلب الاقتباسات مثل ما يلي يجعل Intellisense غير قادر على العثور على ContentPlaceholder ، مما يمنحني الكثير من التحذيرات عند تجميعها.
<body id="<asp:ContentPlaceHolder ID='DomBodyId' runat='server'></asp:ContentPlaceHolder>">
هل هناك أي طريقة للتغلب على هذه؟
المحلول
حاول إعلان BodyID كممتلكات Masterpage الخاصة بك. اضبط قيمتها في صفحات العرض. ثم يمكنك أن تفعل شيئًا مثل
<html>
<body='<%= BodyID %>'>
</body
</html>
نصائح أخرى
هذه مشكلة مع محرر ASP.NET. إنه ليس خاصًا بـ MVC. أعتقد أن الحل البديل جيد ولا أرى عيبًا محددًا.
لست متأكدًا مما إذا كنت قد أسيء فهم سؤالك ، ولكن يمكنك أيضًا إضافة:
<body id="site" runat="server"></body>
ثم الوصول إليه على صفحتك
HtmlControl body = (HtmlControl)Master.FindControl("site");
body.Attributes.Add("class", "LmpDemoRequests");
آمل أن أفهم بشكل صحيح.