سؤال

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

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

كيف أهرب من شخصية "@"؟

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

المحلول

@@ يجب القيام به.

نصائح أخرى

الحلاقة @ Escape Char إلى الرموز ...

<img src="..." alt="Find me on twitter as @("@username")" />

أو

<img src="..." alt="Find me on twitter as @("@")username" />

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

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

لذلك:

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

سيكون:

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

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

is is excart for @ in Razor Views كما هو مذكور أعلاه.

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

للسؤال عن @RazorCodePart1 @@ @RazorCodePart2, ، تحتاج إلى التسلسل:

@RazorCodePart1 @:@@ @RazorCodePart2

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

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

@{
   var twitterSite = "@MyTwitterSite";
}

...

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

هذا العمل بالنسبة لي

<meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")">

أو يمكن استخدام Yoy: alan_van_buuren

جربت جميع الخيارات أعلاه ولم يعمل أي منها. هذا ما فعلته نجح:

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

<td>Email</td>
<td>
   <input type="text" id="txtEmail" required name="email" pattern=@str /> 
</td>

لقد قمت بإنشاء سلسلة متنوعة وتجاوزت جميع رمز نمط regex فيه ، ثم استخدمت المتغير في HTML ، وكان الحلاقة باردة معها.

يمكنك استخدام هذا الغرض. مثل var email = firstName + '\@@' + domain;

فقط أضف متغيرًا في ملف CSHTML var myVariable = @"@";

وأضفه إلى تخطيطك <span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>

لم أتمكن من الحصول على أي من هؤلاء للعمل داخل سمة العنصر النائب الخاص بي ، لذلك استخدمت شخصية XML الخاصة.

<input type="text" placeholder="fex: firstname&#64;lastname.com"/>

رؤية المزيد من الأمثلة هنا.https://www.dvteclipse.com/documentation/svlinter/how_to_use_special_characters_in_xml.3f.html

في الواقع ، يجب استخدام @ مع الكلمات الرئيسية للبناء الشفافة أو إلى المتغير/النموذج لربط القيمة.

على سبيل المثال: إذا تم تعيين الاختبار بقيمة ie @ {var test = "abc"} ، يمكنك الحصول على القيمة عن طريق الإعدادات كـ test في أي مكان هي صفحة CSHTML في جزء html. خلاف ذلك ، الاستخدام البسيط مثل @html.displayName ("اختبار")

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