Я пытаюсь показать свои данные после десериализации 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"
]
}
]
}
<img [email protected]>
отображается как html? Я имею в виду; как выглядит выходной html? - person Stefan   schedule 10.02.2016<img src=.... />
. Или, если даже<img.../>
нет, опубликуйте html, который он выдает. - person Stefan   schedule 10.02.2016-
, как вы сказали, это мало о чем говорит. Проверка элемента html с помощью инструментов разработки покажет файл html. То, о чем я спрашивал - person Stefan   schedule 10.02.2016<img [email protected]>
должно быть таким:<img src="@item.Images"/>
- person Stefan   schedule 10.02.2016show source
, найдите<img>
и опубликуйте ее здесь в формате html. Этот источник является html и не входит в ваш вопрос. Если вы будете следовать этой процедуре, мы сможем ответить на ваш вопрос :-) - person Stefan   schedule 10.02.2016