2010-12-03 23 views
0

我有一個視圖模型定義爲基本HTML.DropDownListFor

public class linkVM 
{ 
    public AL.Common.Content.Object.PageIndex[] pages{ get; set; } 
    public string sPageId { get; set; } 
} 

在strogly輸入的表單我使用

<%Html.DropDownListFor(N => n.pages,新的SelectList(型號。頁面,「PageId」,「ShortName」,Model.sPageId));%>

我在SelectList(Model.pages,部分表示 'Model'與聲明'System.Web .Mvc.ViewPage.Model'

很明顯我缺少的基本知識的一大塊 - 任何人都可以賜教請

感謝

回答

0

它應該是:

<%= Html.DropDownListFor(
    n => n.sPageId, 
    new SelectList(Model.pages, "PageId", "ShortName") 
) %> 

另外,還要確保你的看法是強類型來這linkVM類(在頂部的@Page指令):

<%@ Page 
    Language="C#" 
    MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage<AL.MgrSite.ViewModel.content.linkVM>" %> 

也是呈現此視圖控制器的動作需要通過正確的模型:

public ActionResult Index() 
{ 
    var model = new linkVM 
    { 
     // TODO: fetch those from your repository 
     pages = new[] 
     { 
      new PageIndex { PageId = "1", ShortName = "name 1" }, 
      new PageIndex { PageId = "2", ShortName = "name 2" }, 
      new PageIndex { PageId = "3", ShortName = "name 3" }, 
     } 
    }; 
    return View(model); 
} 

此外,在C#中的約定是有類名和屬性名以大寫字母開頭。

+0

我的頁面指令包含:Inherits =「System.Web.Mvc.ViewPage 」%> ianmt 2010-12-03 11:12:25