كيفية تمرير الصفحة العلامات الفوقية في ASP.NET MVC?

StackOverflow https://stackoverflow.com/questions/144088

  •  02-07-2019
  •  | 
  •  

سؤال

أنا ألعب مع ASP.NET MVC خلال الأيام القليلة الماضية و كان قادرا على بناء موقع صغير.كل شيء يعمل بشكل جيد.

الآن أنا بحاجة إلى تمرير الصفحة العلامات الفوقية (العنوان, الوصف, الكلمات الرئيسية, الخ.) عبر ViewData.(أنا باستخدام الصفحة الرئيسية).

كيف نتعامل مع هذا ؟ شكرا لكم مقدما.

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

المحلول

هنا هو كيف أنا حاليا يفعلون ذلك...

في masterpage لدي مكان حامل مع الافتراضي العنوان والوصف و الكلمات الرئيسية:

<head>
<asp:ContentPlaceHolder ID="cphHead" runat="server">
    <title>Default Title</title>
    <meta name="description" content="Default Description" />
    <meta name="keywords" content="Default Keywords" />
</asp:ContentPlaceHolder>
</head>

ثم في الصفحة ، يمكنك تجاوز جميع هذه المحتويات:

<asp:Content ID="headContent" ContentPlaceHolderID="cphHead" runat="server">
    <title>Page Specific Title</title>
    <meta name="description" content="Page Specific Description" />
    <meta name="keywords" content="Page Specific Keywords" />
</asp:Content>

هذا يجب أن تعطيك فكرة عن كيفية إعداده.الآن يمكنك وضع هذه المعلومات في ViewData (ViewData["PageTitle"]) أو إدراجه في النموذج الخاص بك (ViewData.نموذج.MetaDescription - المنطقي بلوق وظائف ، الخ) وجعلها تعتمد على البيانات.

نصائح أخرى

في viewdata!لا شيء كما يلي...

BaseViewData.cs - هذا هو viewdata الدرجة التي viewdata الطبقات سوف ترث من

public class BaseViewData
{
    public string Title { get; set; }
    public string MetaKeywords { get; set; }
    public string MetaDescription { get; set; }
}

ثم موقع الويب الخاص بك.سيد (أو أيا كان) يجب أن تكون الدرجة على النحو التالي:

public partial class Site : System.Web.Mvc.ViewMasterPage<BaseViewData>
{
}

الآن في موقع الويب الخاص بك.الصفحة الرئيسية ببساطة

<title><%=ViewData.Model.Title %></title>
<meta name="keywords" content="<%=ViewData.Model.MetaKeywords %>" />
<meta name="description" content="<%=ViewData.Model.MetaDescription %>" />

وكنت بعيدا يضحك!

HTHs, تشارلز

Ps.يمكنك ثم توسع في هذه الفكرة ، على سبيل المثالوضع جالبة المستخدم الخاص بك (IPrincipal) فئة في LoggedInBaseViewData الدرجة.

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