2017-03-31 76 views
1

我有一個非常簡單的應用程序,我正在使用它學習有關MVC的動議。在那個應用程序中,我搜索一些數據並返回一個我想用作視圖模型的JSON字符串。我似乎無法弄清楚如何讓視圖將JSON作爲一組數據來顯示在屏幕上。附加MVC應用程序中使用的JSON數據視圖

的代碼,我到目前爲止有:

Function Find(term As String) As ActionResult 

    Dim model As String = SearchData(term) 

    Return View(model) 
End Function 

SearchData返回中可以有一個或多個對象一個JSON字符串。

我現在如何從SearchData返回JSON並在視圖中使用它?實際上,當我嘗試添加視圖時,它想知道使用哪種模型。我怎麼具體呢?

+0

創建一個強類型的類來存放數據,將JSON解析爲強類型模型並將其傳遞給視圖。讓視圖知道期望強類型模型。 – Nkosi

+0

不完全確定您的用例,但如果這是您正在學習的ASP.NET MVC,請考慮您需要從控制器操作中將模型返回到您的視圖。看起來你已經知道這一點了。但是,我不會將字符串返回給視圖,而是要返回一個自定義對象或一組對象,然後您可以在剃刀視圖中使用它作爲@model。要從SearchData()返回的JSON字符串獲取到對象集合,請查看有關對象的JSON序列化的詳細信息。心連心。 –

回答

1

創建一個強類型的對象來存儲你的數據分析時

Public Class Data 
    Public Property ID As Integer 
    Public Property Term As String 
    Public Property SomeProperty As String 
    Public Property SomeOtherProperty As String 
End Class 

使用像JSON.Net圖書館,解析JSON搜索返回。

這假定從搜索中返回一組數據。

Imports Newtonsoft.Json; 

Function Find(term As String) As ActionResult  
    Dim json As String = SearchData(term) 
    Dim model As List(Of Data) = JsonConvert.DeserializeObject(Of List(Of Data))(json) 
    Return View(model) 
End Function 

讓視圖知道期待強類型模型。

@ModelType List(Of Data) 
@Code 
    ViewData("Title") = "Find" 
End Code 

<h2>MyView</h2> 
<!-- rest of view where model can be accessed --> 
+0

喜歡你的人就是我喜歡這個網站的原因!感謝您提供非常有幫助的解釋。你的方法完美工作,我現在明白如何使這項工作爲其他事情前進。 –

相關問題