我有一个视图模型,定义为
public class linkVM
{
public AL.Common.Content.Object.PageIndex[] pages{ get; set; }
public string sPageId { get; set; }
}在我正在使用的一种拼写形式中
<%Html.DropDownListFor(n => n.pages,<%Html.DropDownListFor(Model.pages,"PageId","ShortName",Model.sPageId ));%>
我在SelectList(Model.pages,表示‘模型’的部分与声明'System.Web.Mvc.ViewPage.Model‘冲突)上得到一个编译错误
很明显,我遗漏了一大块基础知识--有没有人能告诉我
谢谢
发布于 2010-12-03 19:06:18
它应该是:
<%= 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#中的约定是类名和属性名以大写字母开头。
https://stackoverflow.com/questions/4344887
复制相似问题