2011-09-15 57 views
1

我試圖使用Newtonsoft的解析器能夠重新創建下面的JavaScript代碼:如何在JsonConvert的SerializeObject()中使用原始HTML?

var nav = { container: $('.ux-navigation-control'), manual: true, validate: true }; 

試圖用Html.Raw內Newtonsoft像:

var nav = @(new HtmlString(JsonConvert.SerializeObject(new 
                 { 
                  container = Html.Raw("$('.ux-navigation-control')"), 
                  manual = true, 
                  validate = true 
                 }))) ; 

返回,而不是期望的表達一個空對象:

var nav = {"container":{},"manual":true,"validate":true} ; 

任何幫助?

回答

0

$('.ux-navigation-control')是無效的JSON,因此大多數(如果不是全部)JSON解析器都會拋出這個問題。您應該只是返回選擇器,並在客戶端做一些後處理,如下所示:

$.getJSON('/myurl', function(nav) { 
    nav.container = $(nav.container); 
    // do something else with nav 
}); 
+0

我明白了。我真的想避免這種情況,但是哦。 :) – rebelliard

+0

我的意思是,你可以生成_javascript_看起來像這樣,只要它被作爲JavaScript源代碼消耗,那麼你會沒事的。但是,那麼你將無法使用你的花哨的JSON生成器=) –

相關問題