ฉันจะเพิ่มแอมเปอร์แซนด์สำหรับค่าในค่าไฟล์การกำหนดค่าแอป ASP.net/C# ได้อย่างไร


209

ฉันมีโปรแกรม C # พร้อมค่าในไฟล์ปรับแต่ง สิ่งที่ฉันต้องการคือการจัดเก็บเครื่องหมายสำหรับค่า url เช่น ...

<appSettings>
  <add key="myurl" value="http://www.myurl.com?&cid=&sid="/>
</appSettings>

แต่ฉันได้รับข้อผิดพลาดในการสร้างเว็บไซต์ของฉัน ไม่อนุญาตเครื่องหมายแอมเปอร์แซนด์ ฉันได้ลองใช้รูปแบบต่าง ๆ ของการหลีกหนีจากเครื่องหมายและไม่มีประโยชน์ ใครรู้รูปแบบที่ถูกต้องในการทำเช่นนี้? ยินดีต้อนรับข้อเสนอแนะทั้งหมด

คำตอบ:


420

ใช้ " &amp;" แทน "&"


2
ฉันคิดอย่างจริงจังว่าฉันได้ลองสิ่งนี้แล้ว ฉันคิดว่าฉันพลาดการติดตาม ";" ในตอนท้าย อย่างไรก็ตามมันใช้งานได้ดีขอบคุณสำหรับคำติชมของ Eric
Rob Segal

6
ใช้งานได้ แต่ฉันต้องใส่สตริงแทนที่ ("& amp;", "&") ทุกครั้งที่ฉันเข้าถึงการตั้งค่านี้มิฉะนั้นเบราว์เซอร์จะตรวจไม่พบเมื่อคุณคลิกที่ลิงค์: /
DLeh

ดี ... มันค่อนข้างน่าผิดหวัง ฉันหมายถึงว่า ConfigurationManager ไม่ได้ยกเลิกการ Unescape โดยอัตโนมัติ & xyl; ตัวอักษรเมื่อรับพวกเขาจากไฟล์ปรับแต่ง
Efrain

@Efrain ไม่แน่ใจว่าสิ่งที่ DLeh พูดถึงอย่างแน่นอน แต่ unescape ใช้งานได้ดีอย่างแน่นอน เพิ่งทดสอบสิ่งนี้กับมาตรฐานappSettingsและNameValueCollectionส่วนที่กำหนดเอง: เครื่องหมายแอมเปอร์แซนด์จะไม่ใช้ค่า Escape ทั้งคู่
julealgon

@DLeh หากคุณกำลังทำงานกับ ViewBag ในไฟล์ .cshtml คุณจะต้องโทรHtml.Rawในแฟ้ม .cshtml ของคุณเพื่อป้องกันไม่ให้มันหนีจากการถูกตามกรอบ
user700390



0

แม้ว่าคำตอบที่ได้รับการยอมรับในที่นี้จะถูกต้องทางเทคนิคดูเหมือนว่าจะมีความสับสนในหมู่ผู้ใช้ตามความคิดเห็น เมื่อทำงานกับ ViewBag ในไฟล์. cshhtml คุณต้องใช้@Html.Rawข้อมูลของคุณเป็นอย่างอื่นหลังจาก ConfigurationManager ซึ่งไม่ได้รับการยกเว้นค่า Escape จะถูกหลบหนีอีกครั้ง ใช้Html.Raw()เพื่อป้องกันไม่ให้สิ่งนี้เกิดขึ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.