Изображение не отображается в представлении Использование ASP.NET MVC

Я пытаюсь показать свои данные после десериализации json в Интернете. Все данные работают отлично, кроме изображений. Он показывает только знак изображения в Интернете, но теперь фактические изображения. Мой код для класса контроллера, в котором я десериализовал объект Json, выглядит следующим образом:

public ActionResult PlaceInformation(City objCityModel)
{
    string name = objCityModel.Name;
    ViewBag.Title = name;
    var ReadJson = System.IO.File.ReadAllText(Server.MapPath(@"~/App_Data/" + name + ".json"));
    RootObject json = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<RootObject>(ReadJson);
    List<Poi> mycities = new List<Poi>();

    foreach (var item in json.poi)
    {
        Poi obj = new Poi()
        {
            Name = item.Name,
            Shorttext = item.Shorttext,
            GeoCoordinates = item.GeoCoordinates,
            Images = item.Images,

        };
        mycities.Add(obj);
    }

    ViewBag.Cities = mycities;
    return View();
}

Теперь в классе представления я хочу показать каждый элемент из этого json. Но у меня ошибка для изображений, которые я упомянул рядом с кодом. Ошибка:

Произошла ошибка при синтаксическом анализе ресурса, необходимого для обслуживания этого запроса. Ознакомьтесь со следующими конкретными сведениями об ошибках синтаксического анализа и соответствующим образом измените исходный файл. Сообщение об ошибке синтаксического анализатора: неожиданное ключевое слово foreach после символа "@". Оказавшись внутри кода, вам не нужно ставить префикс "@" перед такими конструкциями, как "foreach".

Мой код -

@model  CallListService.Models.City
@{
    Layout = null;
}

@{
    ViewBag.Title1 = "Show Data";
}

 @foreach (var item in ViewBag.Cities)
 {
     <h2>@item.Name</h2>
     <p>@item.Shorttext</p>

     <p>@item.GeoCoordinates.Longitude</p>
     <p>@item.GeoCoordinates.Latitude</p>

    @foreach (var image in item.Images) //Parser Error
    {
        <img src=@image >
    }
}

Опять же, если я пишу только таким образом, это работает, но изображение не отображается, отображается только значок img.

<img [email protected]>

Я не нахожу никакого решения для этого.

Это скриншот веб-страницы

Исходный код:

  <!DOCTYPE html>

  <html>
  <head>
  <meta name="viewport" content="width=device-width" />
  <title>PlaceInformation</title>
  </head>
  <body>
  <div> 

         <h2>Nordertor</h2>
         <p>The Nordertor is an old town gate in Flensburg, Germany, which was built around 1595. Today the landmark is used as a symbol for Flensburg.</p>
         <p>9.43004861</p>
         <p>54.79541778</p>
            <img src="System.Collections.Generic.List`1[System.String]" />
         <h2>Naval Academy M�rwik</h2>

         <p>9.45944444</p>
         <p>54.815</p>
            <img src="System.Collections.Generic.List`1[System.String]" />
         <h2>Flensburg Firth</h2>


         </p>
         <p>9.42901993</p>
         <p>54.7959404</p>
            <img src="System.Collections.Generic.List`1[System.String]" />


   </div>
   </body>
   </html>

Я использую следующий файл json для получения всех данных

  {
   "poi":[
    {
      "Name": "Nordertor",
      "Shorttext": "The Nordertor is an old tows used as a symbol for Flensburg.",
      "GeoCoordinates": {
        "Longitude": 9.43004861,
        "Latitude": 54.79541778
      },
      "Images": [
        "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/Nordertor_im_Schnee_%28Flensburg%2C_Januar_2014%29.JPG/266px-Nordertor_im_Schnee_%28Flensburg%2C_Januar_2014%29.JPG"
      ]
    },
    {
      "Name": "Naval Academy Mürwik",
      "Shorttext": "The Naval Academy Mürwik is the main training e..",
      "GeoCoordinates": {
        "Longitude": 9.45944444,
        "Latitude": 54.815
      },
      "Images": [
        "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/MSM-hauptgebaeude.jpg/400px-MSM-hauptgebaeude.jpg"
      ]
    },

    {
      "Name": "Flensburg Firth",
      "Shorttext": "Flensburg Firth or Flensborg Fjordg and the villages Munkbrarup, Langballig, Westerholz, Quern, Steinberg, Niesgrau, Gelting, and Nieby.\n\n",
      "GeoCoordinates": {
        "Longitude": 9.42901993,
        "Latitude": 54.7959404
      },
      "Images": [
        "https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Flensborg_Fjord_ved_bockholmwik.jpg/400px-Flensborg_Fjord_ved_bockholmwik.jpg"
      ]
    }



    ]


}

person harry.luson    schedule 10.02.2016    source источник
comment
Как это <img [email protected]> отображается как html? Я имею в виду; как выглядит выходной html?   -  person Stefan    schedule 10.02.2016
comment
Какую ошибку синтаксического анализатора вы получаете в цикле foreach?   -  person Becuzz    schedule 10.02.2016
comment
@Стефан. Только знак. Не изображение   -  person harry.luson    schedule 10.02.2016
comment
Пожалуйста, опубликуйте вывод html, вещь <img src=.... />. Или, если даже <img.../> нет, опубликуйте html, который он выдает.   -  person Stefan    schedule 10.02.2016
comment
Осмотрите этот элемент и посмотрите, какое значение у вас есть для src.   -  person Stack0verflow    schedule 10.02.2016
comment
Ошибка довольно ясна: удалите @ из второго цикла for.   -  person ZippyV    schedule 10.02.2016
comment
@harry.luson Итак, то, что у вас есть, должно работать отлично. Удалите символ @ перед foreach и посмотрите, что произойдет.   -  person Becuzz    schedule 10.02.2016
comment
@Стефан, я не мог понять. Не могли бы вы объяснить немного больше   -  person harry.luson    schedule 10.02.2016
comment
Лол, я пропустил часть ошибки. В следующий раз, если у вас возникнут вопросы, включите все сообщения об ошибках. Что касается html: если открыть страницу в браузере и увидеть только -, как вы сказали, это мало о чем говорит. Проверка элемента html с помощью инструментов разработки покажет файл html. То, о чем я спрашивал   -  person Stefan    schedule 10.02.2016
comment
Кстати, <img [email protected]> должно быть таким: <img src="@item.Images"/>   -  person Stefan    schedule 10.02.2016
comment
@Becuzz Я удаляю @ персонаж. Но проблема не решена   -  person harry.luson    schedule 10.02.2016
comment
@harry.luson: та же ошибка?   -  person Stefan    schedule 10.02.2016
comment
@Stefan, если я пишу таким образом, это показывает знак изображения, но не изображения   -  person harry.luson    schedule 10.02.2016
comment
Хорошо, тогда еще раз; пожалуйста, покажите нам html.   -  person Stefan    schedule 10.02.2016
comment
@Stefan Хорошо, я даю скриншот. момент   -  person harry.luson    schedule 10.02.2016
comment
Ждать; это то, что я имею в виду, исходный код веб-сайта: computerhope.com/issues/ch000746.htm   -  person Stefan    schedule 10.02.2016
comment
@Stefan: я дал это в своем вопросе   -  person harry.luson    schedule 10.02.2016
comment
Перейдите на свою страницу, щелкните ее правой кнопкой мыши и выберите show source, найдите <img> и опубликуйте ее здесь в формате html. Этот источник является html и не входит в ваш вопрос. Если вы будете следовать этой процедуре, мы сможем ответить на ваш вопрос :-)   -  person Stefan    schedule 10.02.2016
comment
@Стефан О. Извините за недопонимание. Да, я изменил свой вопрос и дал исходный код   -  person harry.luson    schedule 10.02.2016
comment
Что такое точное сообщение об ошибке синтаксического анализа?   -  person CodeNotFound    schedule 10.02.2016
comment
@CodeNotFound. Я нашел решение и выбираю ответ. Спасибо.   -  person harry.luson    schedule 10.02.2016


Ответы (2)


Измените внутренний цикл на:

foreach (var image in item.Images) //without the `@`
{
    <img src="@image" />  //with " and />
}

Это должно работать, если указанный файл существует. (если не работает, покажите полную ошибку + html :-)

person Stefan    schedule 10.02.2016

Тег изображения всегда будет ожидать путь для этого изображения

<img src="./images/name.jpg" />

or

<img src="http:/wwww.sitename.com/images/name.jpg" />

что у вас изображение содержит путь к изображению или байт изображения?

если он содержит байт изображения, то его необходимо отображать отдельно, создавая промежуточную страницу

person Satish Sarwe    schedule 10.02.2016
comment
Я использую изображение URL. поэтому изображение напрямую исходит из URL-адреса - person harry.luson; 10.02.2016
comment
не могли бы вы, пожалуйста, щелкнуть правой кнопкой мыши на этом изображении и предоставить мне путь, который добавляется ИЛИ, можете ли вы проверить источник просмотра изображения html, который создается - person Satish Sarwe; 10.02.2016
comment
Привет, я получил все эти изображения из файла json. Хорошо, я добавляю свой файл json к вопросу. - person harry.luson; 10.02.2016
comment
Щелкните правой кнопкой мыши на своей странице, выберите Просмотр исходного кода и дайте мне HTML-код, сгенерированный в фоновом режиме. - person Satish Sarwe; 10.02.2016
comment
Я добавил этот источник просмотра в свой вопрос - person harry.luson; 10.02.2016
comment
Поставьте <img src='@item.Images'> или <img src="@item.Images"> и снова запустите свой код. - person Satish Sarwe; 10.02.2016