2016-07-04 3 views
0

에 나는 HTML 테이블로 (JsonConvert.SerializeObject를 사용하여 직렬화) 직렬화 된 JSON 문자열을 전달하려합니다. "model.jsonvalue":이 같은 테이블에 JSON 문자열 내부의 값을 호출하고 싶습니다. json 문자열에서 변수를 만드는 방법을 모르겠습니다.MVC JSON HTML 테이블

내 JSON 문자열 : 내 컨트롤러에서

{ 
    "stats": { 
    "global": { 
     "cache": { 
     "misses": "5" 
     }, 
     "download": { 
     "total-downloaded": "500" 
     }, 
     "error": { 
     "config-failed": "50", 
     "retries": "20" 
     }, 
     "instance": { 
     "resets": "2016-06-23 09:45:07" 
     }, 
     "servers": { 
     "server-in-config": "1", 
     "servers-running": "1", 
     "servers-relays": "1" 
     } 
    }, 
    "servers": { 
     "12345": { 
     "uptime": "0d, 18:01:30", 
     "retries": "0", 
     "download-size": "54664", 
     "server-restart": "1", 
     "download-time": "1", 
     "start-time": "2016-06-23 09:45:07", 
     "logic-time": "123", 
     "heartbeat": "1", 
     "logic-retry": "0" 
     }, 
     "44444": { 
     "start-time": "2016-06-23 09:45:07", 
     "download-time": "1", 
     "logic-time": "123", 
     "download-size": "54664", 
     "server-restart": "1", 
     "logic-retry": "0", 
     "uptime": "0d, 18:01:30", 
     "heartbeat": "1", 
     "retries": "0" 
     } 
    } 
    } 
} 

나는 다음과 같이 직렬화 :

string json = System.IO.File.ReadAllText(@path); 
string jsonoutput = JsonConvert.SerializeObject(json); 

... 그리고 나는 다음과 같은 테이블에 전달하려는 값에 대한 컨트롤러가 :

public class Stats 
{ 
    public Global global { get; set; } 
    public List<server> servers { get; set; } 
} 

public class Global 
{ 
    public Cache cache { get; set; } 
    public Download download { get; set; } 
    public Error error { get; set; } 
    public Instance instance { get; set; } 
    public servers servers { get; set; } 
} 

지금 나는 (내가 구글을했다)이 작업을 수행하는 방법을 설명하는 기사가 많이 있습니다 알고 있지만 나는 싶지 않아 ajax, javascript, knockout 또는 기타 스크립트를 사용하십시오. 그냥 평범한 MVC. 내가 MVC와 JSON으로 매우 새로운 오전으로

희망 누군가가 도와 드릴 수 있습니다. 당신은 그냥 일반 ASP MVC는 다음 JSON으로 파일에서 데이터를 변환하지 않는하려면

+0

난 당신이 자바 스크립트없이 MVC를 가질 수 있다고 생각하지 않습니다, 그리고 내가 아는 한 JSON와 함께 작동하는 유일한 합리적인 방법이 AJ를 사용하는 것입니다 도끼. 녹아웃은 실제로 MVC와 약간 다른 MVVC를 수행합니다. 당신은 자바 스크립트를 사용하지 않으 – TW80000

+1

경우 다음 JSON을 사용하여 포인트를 많이가 아니다. 당신은 단지 MVC보기를 사용하려면 다음 직접 HTML 테이블에 행으로 모델의 항목을 변환합니다 면도기를 사용하여 루프를 작성합니다. – ADyson

답변

1

. DataController.cs \

컨트롤러 : 컨트롤러에서 볼 수 즉, 당신의 정적으로 입력 된 모델 (글로벌 클래스)에로드하고 그냥 통과

public class DataController : Controller 
{ 
    public ActionResult Index() 
    { 
     string data = System.IO.File.ReadAllText(@path); 
     var model = ConvertDataToModelSomehow(data); //model variable type: Global 
     return View(model); 
    } 
} 

그런 다음 당신이보기를하고 모델을 사용할 수 있습니다 -보기 \ 데이터 \ Index.cshtml :

@model Global //your model type passed to view 

<table> 
    <thead> 
     <tr> 
      <th>Server name</th> 
     </tr> 
    </thead> 
    <tbody> 
    @foreach(var item in Model.servers) //if Global.servers will be collection 
    { 
     <tr> 
      <td>@item.Name</td> //if element has Name property 
     </tr> 
    }   
    </tbody> 
</table> 

More info here