2016-01-20 186 views
1

我從我的asp.net web應用程序接收控制器中的對象列表。我如何將這個列表傳遞給view2並顯示它?在asp.net MVC視圖中顯示列表

控制器

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

    return View("ShowView"); 
} 
} 

我最大的問題是,這種 「對象」 在另一種解決方案中定義。

+5

我建議你採取ASP.NET教程MVC – hellogoodnight

回答

0

我最大的問題是,這種「對象」在另一種解決方案中定義。

你應該在另一個項目中定義你的對象。例如,'DataTransferObjects'。然後,在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) 
} 
0

您需要將對象列表作爲視圖模型傳遞給視圖。我認爲動態類將在視圖上定義@model時派上用場。

基本MVC真的。

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