2015-09-07 91 views
-2

是否有任何簡單的方法將C#對象轉換爲可以被轉義且可被javascript使用的純字符串?將C#模型轉換爲普通json字符串

我嘗試將字符串傳遞給一個jQuery函數,它將用真實值替換此字符串的某些部分,以通過$.ajax將它們作爲請求對象傳遞。

無論我嘗試(發現在互聯網上)不起作用。

目前我有:

var jsVariable = "@Html.Raw(Json.Encode(new MyClass()))" 

但這拋出Uncaught SyntaxError: Unexpected identifier作爲"的不正確轉義。

更新1

最後我想有JSON字符串像

"{"Prop1": "{0}", "Prop2":"{1}"}" 

上,我可以(在javascript)調用

var request = string.Format(jsVariable, value1, value2); 

啓用

$.ajax({ 
    type: "POST", 
    url: "someUrl", 
    data: $.parseJson(request), 
    success: function(data) { 
     console.log("success"); 
    }, 
    dataType: "JSON" 
}) 
+1

你在找什麼:http://www.newtonsoft.com/json? – tschmit007

+0

我認爲你可以使用json serializeation方法將轉換爲json對象 –

+0

@ tschmit007:同樣想說 –

回答

1

只要擺脫雙引號。

確保將它添加到視圖的腳本標記中。

var jsVariable = @Html.Raw(Json.Encode(new MyClass())) 

,那麼你會得到與它的屬性JavaScript對象 - 提供MyClass定義,並在你的CSHTML訪問。

jsVariable.myProp, jsVariable.myOtherProp。 。 etc

+0

這就是我最終的結果。我認爲會有一個簡單的方法來將此字符串作爲javascript內部的字符串來替換像string.Format(jsVariable,value1,value2)這樣的屬性值,並從此構建'$ .ajax'數據。所以它更像是某種「請求」對象 – KingKerosin

+0

的模板,如果你想改變屬性值並將它傳遞給你的ajax調用 - 你可以改變你的屬性,像這樣:jsVariable.myProp = yourNewValue,然後你可以傳遞相同的對象到你的ajax調用 - 數據:JSON.stringify(jsVariable) –

+0

查看我更新的答案 – KingKerosin

相關問題