razor - تحميل - الهروب @ شخصية في محرك عرض الشائكة




تحميل برنامج asp net 2010 (9)

أقوم بإنشاء نموذج لموقع ASP.NET MVC 3 باستخدام Razor كمحرك عرض. تبدأ صيغة الحلاقة بـ @ character على سبيل المثال @RenderBody() . إذا كتبت @ اختبار في صفحة cshtml الخاصة بي يعطيني خطأ في التحليل

CS0103: اسم "الاختبار" غير موجود في السياق الحالي

كيف أهرب من حرف "@"؟


أنا فقط كان نفس المشكلة. لقد أعلنت عن متغير وضع نصي مع @.

@{
   var twitterSite = "@MyTwitterSite";
}

...

<meta name="twitter:site" content="@twitterSite">

استخدم <text></text> أو الطريقة الأسهل @:


بالنسبة للسؤال حول @RazorCodePart1 @@ @RazorCodePart2 ، تحتاج إلى التسلسل:

@RazorCodePart1 @:@@ @RazorCodePart2

أعرف أنها تبدو غريبة بعض الشيء ، ولكنها تعمل وستحصل على الحرف الحرفي '@' بين كتل التعليمات البرمجية.


بدلاً من كيان HTML ، أفضل استخدام @ Html.Raw ("@")


لقد جربت جميع الخيارات المذكورة أعلاه ولم أقم بأي منها. هذا ما فعلته

@{
    string str = @"[a-z0-9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,3}$";
}

<td>Email</td>
<td>
   <input type="text" id="txtEmail" required name="email" [email protected] /> 
</td>

أنا خلقت سلسلة متغيرة ومرر كل رمز نمط RegEx في ذلك ، ثم استخدم المتغير في أتش تي أم أل ، وكان Razor بارد معها.



هي حرف الهروب لـ @ في طرق عرض Razor كما هو مذكور أعلاه.

على الرغم من ذلك ، يحاول Razor التمرين عندما يكون '@' مجرد '@' وحيث يضع رمز C # (أو VB.Net). أحد الاستخدامات الرئيسية لهذا هو تحديد عناوين البريد الإلكتروني داخل عرض الحلاقة - لا ينبغي أن يكون من الضروري الهروب من @ character في عنوان بريد إلكتروني.


يجب @@ بذلك.


@Html.Raw("@") يبدو لي أن يكون أكثر موثوقية من، لأن ليس في جميع @@ يهرب.

وبالتالي:

<meta name="twitter:site" content="@twitterSite">

سيكون:

<meta name="twitter:site" content="@Html.Raw("@")twitterSite">




asp.net-mvc-3