Как я могу получить доступ к атрибутам списка, который есть в моей модели, в javascript? - PullRequest
1 голос
/ 12 февраля 2020

У меня есть две модели, Model1 и Model2. У Model1 есть атрибут, который является списком моей модели2. Мне нужно получить доступ к этим атрибутам в моем классе индекса. Я не уверен, как это сделать. Вот Модель1:

  public class Model1
{

    public Model1()
    {
        List1 = new HashSet<Model2>();

    }
    [Key]
    public int Id { get; set; }
    public virtual ICollection<Model2> List1 { get; set; }

}

Вот Модель2:

    public class Model2
{
    [Key]
    public int Id { get; set; }
    public string Latitude { get; set; }   
    public string Longitude { get; set; }

}

Вот часть моего индекса:

   $.each(data, function (i, item) {


                var infowindow = '<div id="content" style="hight:700px; width:500px">' +
                    '<div id="siteNotice">' +
                    '</div>' +
                    '<div id="bodyContent">' +
                    '<p><b>ABC:</b></p>' +

                    $.each(item.List1, function (f, item1) {

                        '<p>Latitude:'+ item1.Latitude+'</p>'

                    });

                   //MORE CODE

                }); 
        }); 
}); 

Предполагается, что код, который я имею выше появиться в информационном окне. Я хочу показать широту в абзаце. Я пытаюсь сделать это путем доступа к списку. Тем не менее, это дает мне «неопределенный» и параграф даже не появляется. Я не уверен, как это объяснить. Но я надеюсь, из кода вы поймете.

1 Ответ

0 голосов
/ 12 февраля 2020

Хотя вы, безусловно, можете ввести информацию о своей модели в javascript, я чувствую, что вам следует отступить назад и спросить себя, действительно ли вам это нужно?

Могут быть крайние случаи, когда у вас нет выбора, кроме как больше скорее всего, вы вызовете больше головных болей.

Создание разметки с помощью HTML из вашей модели, я бы сказал, контрпродуктивно. Почему бы просто не визуализировать разметку прямо в бритве:

@foreach (var x in Model.List1 )
{
  <p>Latitude: @x.Latitude+</p>
}

В качестве альтернативы, если вам действительно нужно использовать данные в javascript, я бы подумал об использовании вызова ajax для получения данных. Поскольку вы используете jquery:

$.get( "/myController/GetStuff" )
  .done(function(data) {
    console.log(data);
    //other code
  })
  .fail(function(err) {
    console.error(error);
  })
  .always(function() {
    //hide loading animation or something
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...