Подтвердить что ты не робот

Как передать список из контроллера для просмотра в MVC 3.

У меня есть List < > связанный с некоторыми данными в действии Controller, и я хочу передать этот List < > to View для привязки к DataGrid в представлении Razor.

Я новичок в MVC.Can, кто-нибудь мне подскажет, как пройти и как получить доступ в представлении.

Спасибо, Advance,

Бал

4b9b3361

Ответ 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>
    }
    

Я думаю, что это поможет начать.