2017-06-02 73 views
0

我剛剛得知您可以通過c#剃鬚刀將原始json數據傳遞給視圖。類似於:通過C#剃刀查看JSON數據

@Html.Raw(Json.Encode(Model.SomeData)) 

我想知道通過Web服務調用與通過Web服務調用檢索數據相比,將數據發送到視圖的優點和缺點。

到目前爲止,我所知道的是我傳遞給視圖的數據必須在網頁上內聯顯示。所以我想我總想知道的大事情是:

1)作爲一種檢索應用程序數據的方法,這種安全性如何?

2)有什麼,如果我想可能是敏感信息傳遞給視圖這種方式(如加密服務器上的數據和解密視圖)

3)我可以做當一般是最好的時間做這樣的事情

回答

0

Html.Raw是一個幫助器方法,它只是在你的視圖中呈現一些原始文本。該文本可以是HTML,JSON等等。

我想知道與通過Web服務調用檢索數據相比,以這種方式將數據發送到視圖的優缺點。

這會將數據作爲文本嵌入到您的視圖中。如果您需要這些數據,您需要再次獲取您的視圖(或部分視圖)。這也與視圖引擎(在這種情況下是Razor)有關。這不是Web服務的替代品。有關詳情,請參閱下面第3項的答案。

1)作爲一種檢索應用程序數據的方法,這種安全性如何?

無論您使用Web服務還是此技術,如果您的數據非常敏感,那麼您應該使用HTTPS或對其進行加密或使用其他技術。 它是一樣安全的,因爲你做到了。

2)有什麼,如果我想可能是敏感信息傳遞給視圖這種方式(如加密服務器上的數據和解密視圖)

見答案我可以做上面的項目1。

3)當一般是做這樣的事情

最好的時候,我會覺得很奇怪,如果你這樣做在你的web服務,因爲那麼你的Web服務將被捆綁到查看引擎。

過去我曾經這樣做過,當時我想在我的視圖中包含一些數據。例如,我會包含一些像這樣的數據和瀏覽器端(使用KnockoutJs),我會創建一個ViewModel出來。所以基本上,如果你想要一些JSON包含在你的視圖中,你可以使用這種技術。

+0

謝謝!你認爲這將適用於angularjs指令嗎?我正在考慮將數據全局加載到使用此應用程序的角度應用程序,而不必等待任何異步Web服務調用。 –

+0

我沒有Angularjs的經驗。我只能說,你可以在腳本標記中呈現它,如果Angularjs無法使用它,我會感到驚訝。 – CodingYoshi