2016-08-12 11 views
0

私はデータセット内の文字列フィールドにjsonデータを返すためにSQL Server 2016を使用しています。 jsonの文字列を変換せずにモデルに渡しました。 MVCのカミソリのjsonの文字列フィールドを次のように列挙したいと思います。MVC Razor foreachループでjson文字列を列挙するには?

EmailNotificationsはオブジェクトのjson配列です。

どうすればよいでしょうか?

+0

私の推測では、オブジェクトを配列などにキャストしなければならないと思います。おそらく、それぞれのアイテムを別のものにキャストする必要があります。 JSON.Netを使ってオブジェクトに変換するのはなぜですか? – Eonasdan

+0

'Model.AccountSettings.EmailNotifications'に' EmailNotification'クラスオブジェクトのリストがありますか?それとも単なるストリングですか?文字列の値はどのように見えますか? – Shyju

+0

はいそれは単なる文字列です – Rodney

答えて

2

クリーンな解決策は、JSON配列内の各項目を表すクラスを作成し、文字列をこのクラスのリストに変換して列挙することです。

public class NotificationItem 
{ 
    public int EmailNotificationID { get; set; } 
    public string EmailNotificationName { get; set; } 
    public bool IsSet { get; set; } 
} 

そして、あなたはNotificationItemオブジェクトのリストにJSON文字列を変換するNewtonsoft.Json.JsonConvert.DeserializeObjectの方法を使用することができます。

@{ 
    var items = Newtonsoft.Json.JsonConvert 
       .DeserializeObject<List<NotificationItem>>("yourJsonStringHere"); 
} 
@foreach (var item in items) 
{ 
    <p>@item.EmailNotificationID</p> 
    <p>@item.EmailNotificationName </p> 
} 
関連する問題