Link
Link

Reputation: 57

Add Object from razor to js list not working

i get this in chrome debug picsList.push(BL.datafuncs+pics); a string insted of picsList.push([{img:"",url:""}]); an object

<script>
 var picsList = [];

    @foreach (var item in BL.datafuncs.GetMainPagePics())
        {
             @:picsList.push(@item);
        }
</script>


 public class pics
        {
            public string img { get; set; }
            public string url { get; set; }
        }

        public static List<pics> GetMainPagePics()
        {
            List<pics> a = new List<pics>();

                    pics p =new pics();
                    p.img = "", 
                    p.url = "";
                    a.Add(p);

            return a;
        }

Upvotes: 1

Views: 50

Answers (2)

Rafał Straszewski
Rafał Straszewski

Reputation: 998

You need to convert object to json, you can try:

@:picsList.push(@Html.Raw(Json.Encode(item)));

Upvotes: 0

Daniel Oliveira
Daniel Oliveira

Reputation: 1141

I think razor is using "ToString()" method of "item".
Maybe JsonConvert.SerializeObject?

;P

Upvotes: 1

Related Questions