2010-06-07 47 views
1

我想添加ASP.NET MVC功能(特別是路由)到我現有的ASP.NET Web應用程序。我添加了一個受控和視圖(一個ASP .net page)。現在我想知道如何在視圖中顯示我的自定義類(例如:用戶)的對象的細節?可以在ViewData集合中分配對象並將其呈現在視圖中?怎麼樣 ?我已經有了一個Datalayer(在ADO.NET中),它正在爲當前的ASP.NET Web應用程序運行。所以我想使用它。ASP.NET MVC:如何顯示視圖頁面中的自定義對象屬性

我在控制器嘗試這種

public ActionResult Index() 
    { 
     BusinessObject.User objUser = new BusinessObject.User(); 
     objUser.EmailId = "[email protected]"; 
     objUser.ProfileTitle = "Web developer with 6 yrs expereince"; 

     ViewData["objUser"] = objUser; 
     ViewData["Message"] = "This is ASP.NET MVC!"; 

     return View(); 
    } 

如何使用這個視圖頁面顯示用戶的詳細信息?

在此先感謝

回答

2

您應該將對象作爲視圖模型(或部分視圖模式,與你的消息一起)傳遞給一個強類型的視圖。然後,您可以簡單地在視圖中引用模型屬性。

public class IndexViewModel 
{ 
    public BusinessObject.User User { get; set; } 
    public string Message { get; set; } 
} 

(或更好,但只是從你確實需要的用戶對象的屬性)

控制器

public ActionResult Index() 
{ 
    BusinessObject.User objUser = new BusinessObject.User(); 
    objUser.EmailId = "[email protected]"; 
    objUser.ProfileTitle = "Web developer with 6 yrs expereince"; 

    return View(new IndexViewModel { 
     User = objUser, 
     Message = "This is ASP.NET MVC!"; 
    }); 
} 

查看

<%@ Page Title="" Language="C#" 
    MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.MVC.ViewPage<MyWebSite.Models.IndexViewModel>" %> 

<%= Html.Encode(Model.User.EmailId) %> 
+0

這是什麼繼承=」 System.Web.MVC.ViewPage 「的意思是? – Shyju 2010-06-07 17:59:40

+0

@shyju - 這意味着ViewPage的模型屬性的類型爲「MyWebSite.Models.IndexViewModel」 - 名稱空間是假的,但意味着與示例中的模型類相對應。 – tvanfosson 2010-06-07 18:07:08

相關問題