2017-06-02 52 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