Как передать список из контроллера для просмотра в MVC 3.
У меня есть List < > связанный с некоторыми данными в действии Controller, и я хочу передать этот List < > to View для привязки к DataGrid в представлении Razor.
Я новичок в MVC.Can, кто-нибудь мне подскажет, как пройти и как получить доступ в представлении.
Спасибо, Advance,
Бал
Ответы
Ответ 1
Передача данных для просмотра проста, как передача объекта методу. Взгляни на
Метод Controller.View
protected internal ViewResult View(
Object model
)
Что-то вроде этого
//controller
List<MyObject> list = new List<MyObject>();
return View(list);
//view
@model List<MyObject>
// and property Model is type of List<MyObject>
@foreach(var item in Model)
{
<span>@item.Name</span>
}
Ответ 2
Я сделал это:
В контроллере:
public ActionResult Index()
{
var invoices = db.Invoices;
var categories = db.Categories.ToList();
ViewData["MyData"] = categories; // Send this list to the view
return View(invoices.ToList());
}
В поле зрения:
@model IEnumerable<abc.Models.Invoice>
@{
ViewBag.Title = "Invoices";
}
@{
var categories = (List<Category>) ViewData["MyData"]; // Cast the list
}
@foreach (var c in @categories) // Print the list
{
@Html.Label(c.Name);
}
<table>
...
@foreach (var item in Model)
{
...
}
</table>
Надеюсь, что это поможет
Ответ 3
Вы можете использовать динамический объект ViewBag
для передачи данных из контроллеров в представления.
Добавьте к контроллеру следующее:
ViewBag.MyList = myList;
Затем вы можете получить его с вашего вида:
@ViewBag.MyList
// e.g.
@foreach (var item in ViewBag.MyList) { ... }
Ответ 4
-
Создайте модель, которая содержит ваш список и другие вещи, которые вам нужны для представления.
Например:
public class MyModel
{
public List<string> _MyList { get; set; }
}
-
Из метода действия поместите свой желаемый список в свойство Model, _MyList
, например:
public ActionResult ArticleList(MyModel model)
{
model._MyList = new List<string>{"item1","item2","item3"};
return PartialView(@"~/Views/Home/MyView.cshtml", model);
}
-
В вашем представлении обращайтесь к модели следующим образом
@model MyModel
foreach (var item in Model)
{
<div>@item</div>
}
Я думаю, что это поможет начать.