在asp.net MVC视图中显示列表

时间:2016-01-20 12:47:14

标签: c# asp.net asp.net-mvc

我从我的asp.net Web应用程序收到控制器中的对象列表。如何将此列表传递给view2并显示它?

控制器

public class HomeController:Controller
{
 public ActionResult Index()
 {
  WCF.CommunicationServiceClient Client = new WCF.CommunicationClient("BasicHttpBinding_ICommunicationService");
  List<object> objectlist = Client.GetList("_something_");

  return View("ShowView");
 }
}

我最大的问题是这个“对象”是在另一个解决方案中定义的。

4 个答案:

答案 0 :(得分:0)

您需要将对象列表作为视图模型传递给视图。我认为动态类在视图上定义@model时会派上用场。

基本的MVC真的。

答案 1 :(得分:0)

创建strongly typed view,然后将对象传递给它ap response

答案 2 :(得分:0)

你可以像这样在列表中使用动态而不是对象,因为你不知道对象抓取了什么。

 public class HomeController:Controller
 {
   public ActionResult Index()
    {
     WCF.CommunicationServiceClient Client = new WCF.CommunicationClient("BasicHttpBinding_ICommunicationService");
     List<dynamic> objectlist = Client.GetList("_something_");
     return View("ShowView");
    }
 }

了解动态 click here的更多信息 还有一个可能涉及的问题 List with Dynamic Object Type

答案 3 :(得分:0)

  

我最大的问题是这个&#34;对象&#34;在另一个解决方案中定义。

您应该在另一个项目中定义您的对象。例如,&#39; DataTransferObjects&#39;。然后在WCF服务器项目和MVC(WCF客户端)项目中添加对此项目的引用。通过这种方式,这两个人都会知道。

在您的DTO项目中:

[DataContract]
public class MyClass
{
    [DataMember]
    public int MyProperty { get; set; }
}

然后你的代码将是:

public class HomeController:Controller
{
 public ActionResult Index()
 {
  WCF.CommunicationServiceClient Client = new WCF.CommunicationClient("BasicHttpBinding_ICommunicationService");
  List<MyClass> objectlist = Client.GetList("_something_");

  return View("ShowView", objectlist);
 }
}

你的ShowView:

@model List<MyClass>

@for (i = 0; i < Model.Count; i++)
{
    @Html.EditorFor(m => Model[i].MyProperty)
}