2011-05-13 68 views
1

我有我創建了一個看起來像這樣一個強類型的ViewPage:從代碼中創建強類型的視圖,並加載它

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Models.Reports.OverallResultsViewModel>" %> 

我想在代碼中創建視圖頁面,並使其不顯示它:

System.Web.Mvc.ViewPage<Models.Reports.OverallResultsViewModel> page2 = new ViewPage<Models.Reports.OverallResultsViewModel>(); 

這裏是實現視圖模型:

public class OverallResultsViewModel { 
    public OverallResultsViewModel(string name, string draft, IEnumerable<Subject> subjects, IEnumerable<IResult> results) { 
     this.Name = name; 
     this.Draft = draft; 
     this.Subjects = subjects; 
     this.Results = results; 
    } 

    public IEnumerable<Subject> Subjects { get; set; } 
    public IEnumerable<IResult> Results { get; set; } 
    public string Name { get; set; } 
    public string Draft { get; set; } 
} 

我想我會用弗洛翼代碼將值傳遞到視圖模型:

page2.Model.Draft = Draft; 
page2.Model.Results = page2Data; 
page2.Model.Subjects = subjects; 
page2.Model.Name = Name; 

但是,我收到一個錯誤,指出模型爲null。我如何獲得模型初始化,以便我可以設置變量?

回答

2

嘗試:

page2. ViewData .Model = new OverallResultsViewModel(
                   Name, Draft, subjects, page2Data
 );