Asp.net mvc 2 基本HTML.DropDownListFor
我将viewmodel定义为Asp.net mvc 2 基本HTML.DropDownListFor,asp.net-mvc-2,Asp.net Mvc 2,我将viewmodel定义为 public class linkVM { public AL.Common.Content.Object.PageIndex[] pages{ get; set; } public string sPageId { get; set; } } 以我正在使用的strogly类型的形式 n.pages,新选择列表(Model.pages,“PageId”,“ShortName”,Model.sPageId));%%> 我在SelectList(Mod
public class linkVM
{
public AL.Common.Content.Object.PageIndex[] pages{ get; set; }
public string sPageId { get; set; }
}
以我正在使用的strogly类型的形式
n.pages,新选择列表(Model.pages,“PageId”,“ShortName”,Model.sPageId));%%>
我在SelectList(Model.pages)上得到一个编译错误,该部分显示
“Model”与声明“System.Web.Mvc.ViewPage.Model”冲突
很明显,我缺少一大块基本知识——有人能给我点化一下吗
谢谢应该是:
<%= Html.DropDownListFor(
n => n.sPageId,
new SelectList(Model.pages, "PageId", "ShortName")
) %>
此外,呈现此视图的控制器操作需要传递正确的模型:
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#中的惯例也是让类名和属性名以大写字母开头。My page指令包含:Inherits=“System.Web.Mvc.ViewPage”%%我已经做了您建议的更改,但仍然会得到相同的错误如果您完全按照我的代码片段中的操作,则不会出现任何错误。请尝试使用我建议的代码创建一个包含单个操作的新控制器,并创建一个仅包含对帮助器的调用的简单视图。另外,请验证您是否没有名为
Model哪一个可能会发生冲突。好的-我正在转换它,我的代码仍然包装在一个HTML.BeginForm中-如果我删除它,它似乎工作正常-这是您所期望的吗?
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);
}