2013-11-12 2 views
0

Прежде всего, я новичок в MVC.MVC4 - отображение свойств результата JSON в поле зрения

Я хочу отобразить свойства ответа JSON в виде html.

Например, я хочу получить количество понравившихся страниц от ответа JSON и отобразить только количество понравившихся на странице.

Любая помощь очень ценится :)

// 
    // GET: /Facebook/ 

    public ActionResult Index() 
    { 
     var json = new WebClient().DownloadString("https://graph.facebook.com/google"); 
     JsonConvert.DeserializeObject<RootObject>(json); 

     return view(); 
    } 

    public class CategoryList 
    { 
     public string id { get; set; } 
     public string name { get; set; } 
    } 

    public class Location 
    { 
     public string street { get; set; } 
     public string city { get; set; } 
     public string state { get; set; } 
     public string country { get; set; } 
     public string zip { get; set; } 
     public double latitude { get; set; } 
     public double longitude { get; set; } 
    } 

    public class Cover 
    { 
     public string cover_id { get; set; } 
     public string source { get; set; } 
     public int offset_y { get; set; } 
     public int offset_x { get; set; } 
    } 

    public class RootObject 
    { 
     public string about { get; set; } 
     public string awards { get; set; } 
     public string category { get; set; } 
     public List<CategoryList> category_list { get; set; } 
     public int checkins { get; set; } 
     public string company_overview { get; set; } 
     public string description { get; set; } 
     public string founded { get; set; } 
     public bool is_published { get; set; } 
     public Location location { get; set; } 
     public string mission { get; set; } 
     public string phone { get; set; } 
     public string products { get; set; } 
     public int talking_about_count { get; set; } 
     public string username { get; set; } 
     public string website { get; set; } 
     public int were_here_count { get; set; } 
     public string id { get; set; } 
     public string name { get; set; } 
     public string link { get; set; } 
     public int likes { get; set; } 
     public Cover cover { get; set; } 
    } 
} 
} 
+1

магазин ваши симпатии через 'ViewData [«любит»] = любит,' в своем действии (Index) и вызвать его в индексном, чтобы отобразить его , '@ViewData [" нравится "] нравится. Решение Carles прекрасно работает. –

ответ

1

Ваши действия должны передать объект к представлению:

public ActionResult Index() 
{ 
    var json = new WebClient().DownloadString("https://graph.facebook.com/google"); 
    var root=JsonConvert.DeserializeObject<RootObject>(json); 

    return view(root); 
} 

, а затем на ваш взгляд, вы можете показать, какой собственности вы хотите:

@Model RootObject 
<html> 
    <head> 
     <title>Showing properties</title> 
    </head> 
    <body> 
     @Model.likes likes. 
    </body> 
</html> 

Это, если вы используете синтаксис Razor.

+0

Спасибо! Серьезно ничего не нашел в Google. – SteveO

0

вы упускаете

return view(root); 

Вы должны передать объект назад, чтобы посмотреть, чтобы использовать его.

вы можете использовать JsonResult в MVC 4,

public JsonResult ReturnSomeJson() 
    { 
    JsonResult result = new JsonResult(); 
    //Assign some json value to result. 
    //Allow get is used to get the value in view. 
    return view(result,AllowGet.True); 
    } 
+0

Спасибо за ваш ответ codebarin, ответ Carles работает для меня. Однако ваш ответ является отраслевой стандартной практикой? Я очень новичок в MVC. Должен ли я придерживаться того, что работает или настраивать проект для более легкого и будущего развития? – SteveO

+0

Когда вы новичок в какой-то технологии, вы обычно придерживаетесь того, что легко, но я бы рекомендовал вам быстро научиться и следовать стандартам, которые не нарушат вашу архитектуру разработки. – Sakthivel

Смежные вопросы