C# String.Format замества екранираните кавички в

Опитвам се да форматирам низ с помощта на функцията String.Format, но моите двойни кавички продължават да се заменят с безопасната HTML версия на това ("). Излишно е да казвам, че това не е резултатът, който бих очаквал.

Текущият ми код изглежда така

string String= String.Format("{0}: {{ name: \"{1}\"}}", node.Category, node.Name);
// Output ==> SomeCategory: { name: "SomeName" }

Опитах да заменя " с действителни кавички в изхода, но това също не проработи. Има ли някакво вуду, което мога да използвам, за да поправя това?
Благодаря предварително!


person Rob    schedule 01.05.2014    source източник
comment
Моля, покажете малко код около това, защото проблемът не е причинен от извикването format.   -  person Willem    schedule 01.05.2014
comment
Този низ се поставя в List‹String›, който се предава с помощта на ViewBag на Razor. В изгледа преминавам през списъка и показвам низовете.   -  person Rob    schedule 01.05.2014
comment
Опитайте да използвате помощника @Html.Raw( ... ), за да покажете низа.   -  person Willem    schedule 01.05.2014
comment
@Willem Както е коментирано под вашия отговор, в момента използвам това.   -  person Rob    schedule 01.05.2014


Отговори (2)


Това не е причинено от String.Format(), по-вероятно е причинено от това, което използвате, за да видите данните, или от нещо, което се случва, преди да видите данните.

Съдейки по вашия форматен низ, изглежда, че се опитвате да създадете JSON низ за връщане (вероятно от услуга). Има голям шанс нещо да кодира HTML вашия низ по пътя към клиента. Проблемът е там, а не във форматирането на вашия низ и по този начин опитът да го поправите там няма да работи.

person Willem    schedule 01.05.2014
comment
Това би обяснило много (тъй като не можах да намеря този конкретен проблем в нито един друг проблем със StackOverflow и функцията за форматиране не трябва да замества специални знаци). Проблемът е в това, което вече предложихте, гледката. Дисплеят на Razor автоматично ще кодира HTML. Използването на функцията Html.Raw() деактивира това и не замества кавичките. - person Rob; 01.05.2014

Опитайте се да използвате HTML декодиране и кодиране. По този начин можете да ги превърнете в действителни кавички.

HttpUtility.HtmlDecode

Източник: http://msdn.microsoft.com/en-us/library/aa332854%28v=vs.71%29.aspx

Източник на Stackoverflow: вместо знак за кавичка ()

person markieo    schedule 01.05.2014
comment
Ако подмяната на " не работи, това също няма да работи. - person Willem; 01.05.2014