Escape @ ตัวละครในเครื่องมือดูมีดโกน


561

ฉันกำลังสร้างไซต์ ASP.NET MVC 3 ตัวอย่างโดยใช้มีดโกนเป็นเอ็นจิ้นการดู ไวยากรณ์มีดโกนเริ่มต้นด้วยตัวอักษรเช่น@ @RenderBody()ถ้าฉันเขียน @test บนหน้า cshtml ของฉันมันทำให้ฉันมีข้อผิดพลาดในการแยกวิเคราะห์

CS0103: ชื่อ 'ทดสอบ' ไม่มีอยู่ในบริบทปัจจุบัน

ฉันจะหลบหนีตัวละคร '@' ได้อย่างไร


1
ใน C # คุณสามารถทำเครื่องหมายคำหลักด้วย @ เพื่อใช้เป็นชื่อตัวแปรแทนที่จะเป็นคำหลัก เท่าที่ฉันรู้ดูเหมือนว่าเป็นไปไม่ได้ที่จะใช้คำหลักที่สงวนไว้ในมีดโกนด้วยวิธีนี้
หน้าตาบูดบึ้งของ Despair

1
@GrimaceofDespair วิธีการทำเครื่องหมายคำหลักเป็นตัวแปรคือการใส่คำที่สอง@ในวงเล็บ ฉันจัดการเพื่อให้การทำงานโดยการเขียนอย่างนี้:@(@new)
strizzwald

คำตอบ:


903

@@ ควรทำมัน


9
ดูเหมือนจะไม่สามารถใช้งานได้ในกรณีนี้: @RazorCodePart1 @@ @RazorCodePart2เช่น @ ตัวอักษรระหว่างโค้ดขนาดมีดโกนสองตัว
Josh M.

27
ลอง <text> </text> หรือ @:
Kasper Skov

89
ทางออกที่ดีที่สุดคือการใช้สตริงอักขระที่เข้ารหัส HTML สำหรับ @ -character: & # 64;
WoIIe

9
ฉันมี<style>แท็กในหน้ามีดโกนซึ่งต้องฝังคำสั่ง '@media {}' ดังนั้นการเข้ารหัส html จึงไม่ใช่ตัวเลือก ทำงานเฉพาะ @@
Triynko

12
ใช้ href ใช้ @ ("@")
Asiri Dissanayaka

145

Razor @ char char กับสัญลักษณ์ ...

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

หรือ

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

3
วิธีนี้ดูเหมือนจะดีที่สุดเพราะจะใช้ได้กับ @media css stuff ในขณะที่ HTML เอนทิตีอาจจะไม่เหมือนกัน
ChrisF

1
ดี! ขอบคุณมาก :)
Ashkan Sirous

1
คุณจับมันขอบคุณ :)
Pankaj Parkar

1
ทำงานได้ดี ขอบคุณ
Orion

1
เยี่ยมมากฉันพบว่ารหัสนี้ง่ายขึ้นสำหรับทุกคนที่จะเข้าใจมัน
achecopar

39

ใช้<text></text>หรือวิธีที่ง่ายกว่า@:


มันแปลก (ที่เครื่องหมายลำไส้ใหญ่) @: ไวยากรณ์ลำดับอักขระไม่ทำงานสำหรับฉันเนื่องจากฉันพยายามอัพเกรดโครงการ ASP.NET MVC 3 เป็น MVC4 ข้อยกเว้นที่ฉันได้รับคือ: "": "ไม่ถูกต้องในช่วงเริ่มต้นของการบล็อกรหัสเฉพาะตัวระบุคำหลักความคิดเห็น" ("และ" {"ถูกต้อง"
Michael R

@Michael นั่นแปลก พวกเขาจะต้องลบออกในเวอร์ชัน 4
Kasper Skov

สวัสดี Kasper Skov ฉันพบ @: ปัญหาไม่เกี่ยวข้องกับ @: เลย มันเกี่ยวข้องกับการใช้ @Model โดยไม่จำเป็นในบล็อก @if () {} การแก้ไขคือการวางเครื่องหมายที่รุ่น ฉันต้องหลีกเลี่ยงการใช้ @ เมื่ออยู่ในขอบเขตเซิร์ฟเวอร์แล้ว stackoverflow.com/questions/12809855/…
Michael R

38

@Html.Raw("@")ดูเหมือนว่าฉันจะมีความน่าเชื่อถือมากกว่า@@เพราะไม่ใช่ในทุกกรณี@@จะหลบหนี

ดังนั้น:

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

อยากจะเป็น:

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

และฉันจะใช้ข้อความขนาดใหญ่หลายย่อหน้าได้อย่างไร ฉันได้ลองด้วย `แทนที่จะเป็น" แต่ผลลัพธ์นั้นน่าสงสัยไม่มีข้อผิดพลาดในแถวว่างเปล่า แต่มีข้อผิดพลาดในอักขระ `
EPurpl3


12

@@ เป็นอักขระเลี่ยงสำหรับ @ ในมุมมองมีดโกนตามที่ระบุข้างต้น

มีดโกนพยายามทำผลงานออกมาเมื่อ '@' เป็นเพียง '@' และที่ใดที่ทำเครื่องหมายรหัส C # (หรือ VB.Net) หนึ่งในการใช้งานหลักสำหรับสิ่งนี้คือการระบุที่อยู่อีเมลในมุมมองมีดโกน - ไม่จำเป็นต้องหลีกเลี่ยงอักขระ @ ในที่อยู่อีเมล


ฉันไม่พบวิธีสำหรับ Razor / VB.net และใช้ Prismjs ฉันลองทั้งหมดข้างต้นสำหรับ <a href="@Url.Action("Edit", "Antigen", ใหม่ด้วย {Key .id = item.AntigenId})" class="btn-xs btn-primary"> แก้ไข </ >
JoshYates1980

8

สำหรับคำถามเกี่ยวกับ@RazorCodePart1 @@ @RazorCodePart2คุณต้องลำดับ:

@RazorCodePart1 @:@@ @RazorCodePart2

ฉันรู้ว่ามันดูแปลก ๆ แต่ใช้งานได้และจะให้ตัวอักษร '@' ระหว่างตัวบล็อกโค้ดกับคุณ


7

ฉันมีปัญหาเดียวกัน ฉันประกาศตัวแปรที่ใส่ข้อความด้วย @

@{
   var twitterSite = "@MyTwitterSite";
}

...

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

นี่เป็นสิ่งเดียวที่ทำงานได้สำหรับฉันและใช้งานได้ดีกับ Open Graph debuggers
Ciprian

4

งานนี้สำหรับฉัน

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

หรือ yoy สามารถใช้: @@ Alan_van_Buuren

: D



1

เพียงเพิ่มตัวแปรในไฟล์ CSHTML var myVariable = @"@";

และเพิ่มลงในเค้าโครงของคุณ <span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>


0

ฉันลองตัวเลือกทั้งหมดด้านบนและไม่มีใครทำงาน นี่คือสิ่งที่ฉันทำ

@{
    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 และมีดโกนก็เท่ห์ด้วย


0

ฉันไม่สามารถรับสิ่งเหล่านี้เพื่อทำงานภายในแอตทริบิวต์ตัวยึดตำแหน่งของฉันดังนั้นฉันจึงใช้อักขระพิเศษ 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


1
ความต้องการของฉันคือการเพิ่ม @ ในเมตาแท็ก และใช้งานได้ดี @@ ไม่ทำงานที่นั่น
Asiri Dissanayaka

0

จริงๆแล้วควรใช้ @ พร้อมกับคีย์เวิร์ดไวยากรณ์ของมีดโกนหรือกับตัวแปร / โมเดลเพื่อผูกค่า

สำหรับตัวอย่าง: หากการทดสอบถูกกำหนดด้วยค่าเช่น @ {var test = "ABC"} คุณจะได้รับค่าโดยการตั้งค่าเนื่องจาก @test ที่ใดก็ได้คือหน้า cshtml ในส่วน html มิฉะนั้นให้ใช้อย่างง่ายเป็น @ Html.DisplayName ("ทดสอบ")


0

ฉันรู้ว่าคำถามนี้เก่า แต่ฉันได้ลองทั้งหมดข้างต้นแล้วและก็ไม่ได้ช่วยให้ฉันรอดพ้นตัวละคร "@" ในกรอบเต็ม ASP.NET (MVC 5) ภายใน URL จากคำตอบของ Terje Solem แต่รหัส UTF-8 นั้น%40เหมาะกับฉัน นี่คือ URL ดั้งเดิมที่ฉันพยายามเข้าถึง:

https://unpkg.com/@google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js

และด้วยรหัสในนั้น:

https://unpkg.com/%40google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.