我从我的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");
}
}
我最大的问题是这个“对象”是在另一个解决方案中定义的。
答案 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)
}