Member 11944583 Ответов: 2

Как отобразить список стран в MVC


У меня есть приложение mvc в vs 2010.in что у меня есть домашний контроллер с одним методом Index().Он собирается вернуть список стран.Этот список стран я хочу отобразить через view. Как это сделать в vs 2010.пожалуйста, скажите мне, как добавить представление для этого и что нам нужно написать код для отображения его конечному пользователю.


Вот мое действие контроллера.

индекс общественного ActionResult ()
{
ViewData["страны"]= новый список<строка>()
{
"ИНДИЯ",
"Пакистанец",
"АВСТРАЛИЯ",
"Южная Африка"
};
возвращение смотреть();
}

2 Ответов

Рейтинг:
0

Krunal Rohit

Скорее создайте модель для страны и верните эту модель для просмотра.

// Модель

public class Country
{
    public int ID { get; set; }
    public string Name { get; set; }
}

// Контроллер
public ActionResult Index()
{
    List<country> countries = new List<country>() {
        new Country() { ID = 1, Name = "India"},
        new Country() { ID = 2, Name = "Pakistan"},
        new Country() { ID = 3, Name = "Australia"},
        new Country() { ID = 4, Name = "South Africa"}
    }
    return View(countries);
}</country></country>

// Вид
@model IEnumerable<country>
<ul>
    @foreach(var item in Model)
    {
        <li id="@item.ID">@item.Name</li>
    }
</ul></country>

Это основная идея, как вы можете сделать это в MVC, вы можете изменить это в соответствии с вашими потребностями. :)

[Обновления после комментариев]
// контроллер
IEnumerable<string> list = new List<string><br />
{<br />
"INDIA",<br />
"PAKISTHAN",<br />
"AUSTRALIA",<br />
"SOUTH AFRICA"<br />
};<br />
ViewData["countries"] = list;<br />
<br />
// view<br />
@foreach (string item in ViewData["countries"] as List<string>)<br />
{<br />
<p>@item</p><br />
}


-КРОНА


Member 11944583

не могу ли я использовать viewdata для передачи данных между контроллером и представлением для отображения.

Member 11944583

я не могу создать экземпляр класса country в conyroller, в чем заключается проблема, стоящая за этим.

Krunal Rohit

Да, вы можете сделать что-то вроде:
@foreach(var item in ViewData["страны"])
{
&ЛТ;п&ГТ;деталь&ЛТ;/п&ГТ;
}
Дай мне знать, если это сработает.

-КРОНА

Member 11944583

это мой код код в поле зрения:
&ЛТ;%@ управления "язык" ="язык C#" наследует="системы.Веб.В MVC.ViewUserControl&ЛТ;динамический&ГТ;" %&ГТ;

<div>
foreach(var i in ViewData["страны"])
{
<p>i</p>
}
</div>
и я получаю вывод типа:
foreach(var i in ViewData["страны"]) {
я

Member 11944583

список стран не отображается он отображается так же как и с тегом in div

Krunal Rohit

забыл написать @ перед предисловием.
Смотрите обновленный комментарий.

-КРОНА

Member 11944583

тогда выход такой:

@foreach(var i in ViewData["страны"]) {
я

}

Krunal Rohit

// контроллер
в <предварительно&ГТ; интерфейс IEnumerable в<строка> Список = новый список<строка&ГТ;
{
"ИНДИЯ",
"Пакистанец",
"АВСТРАЛИЯ",
"Южная Африка"
};
ViewData["страны"] = список;

// вид
@foreach (string item in ViewData["countries"] as List<string>)
{
<p>@item</p>
}
</pre>

-КРОНА

Member 11944583

уже пробовал это, но бесполезно.на самом деле, набирая текст, я не получаю никакого интеллекта, есть ли какие-то проблемы.

Member 11944583

получение вывода того, что мы написали в теге Div.

Krunal Rohit

Смотрите обновленное решение, Пожалуйста.

-КРОНА

Member 11944583

бесполезно Рохит

Krunal Rohit

Я протестировал это решение, а затем обновил его здесь. Он прекрасно работает.

-КРОНА

Member 11944583

я использую mvc 2.0 в vs 2010 и .net framework 4.0
в той же среде вы закончили это.

Krunal Rohit

Нет, но дело не в этом. вы можете преобразовать это в свой синтаксис razor.
Заменять @ с &низкотемпературный;%: и в конце заявления: %>.

-КРОНА

Member 11944583

получение ошибок может, пожалуйста, изменить его.
&ЛТ;%@ управления "язык" ="язык C#" наследует="системы.Веб.В MVC.ViewUserControl&ЛТ;динамический&ГТ;" %&ГТ;

<div>


<% foreach(var i in ViewData["страны"])%>
{
&ЛТ;п&ГТ;&ЛТ;% я %&ГТ;&ЛТ;/п&ГТ;
}
</div>

Member 11944583

это мой код.:
&ЛТ;%@ управления "язык" ="язык C#" наследует="системы.Веб.В MVC.ViewUserControl&ЛТ;динамический&ГТ;" %&ГТ;

<div>


&ЛТ;%по каждому элементу(строка I в (список<строка> В)ViewData["стран"])
{%>
<p>
&ЛТ;% я.Метод toString(); %&ГТ;

</p>
<%} %>


</div>
я получаю пустую страницу в качестве вывода.

Krunal Rohit

Что-то не так. Вы пробовали работать с отладчиком ?

-КРОНА

Member 11944583

получил его просто мы забыли символ"=", прежде чем я переменная вот это.спасибо за поддержку КР.

Рейтинг:
0

Member 13778432

Вы можете просто создать контроллер с помощью myController.cs

public ActionResult Index()
       {
           ViewBag.Countries =new List<string>()
           {
               "Pakistan",
               "UAE",
               "Iran",
               "China"
           };
           return View();
       }

Затем создайте представление с помощью viewName.cshtml
<h2>Index</h2>
<ul>
    @foreach (string strCountry in ViewBag.Countries)
    {
        <li>@strCountry</li>
    }
</ul>