首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基本HTML.DropDownListFor

基本HTML.DropDownListFor
EN

Stack Overflow用户
提问于 2010-12-03 19:03:35
回答 1查看 384关注 0票数 0

我有一个视图模型,定义为

代码语言:javascript
复制
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‘冲突)上得到一个编译错误

很明显,我遗漏了一大块基础知识--有没有人能告诉我

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-03 19:06:18

它应该是:

代码语言:javascript
复制
<%= Html.DropDownListFor(
    n => n.sPageId, 
    new SelectList(Model.pages, "PageId", "ShortName")
) %>

还要确保您的视图强类型化为这个linkVM类(顶部的@Page指令):

代码语言:javascript
复制
<%@ Page 
    Language="C#" 
    MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage<AL.MgrSite.ViewModel.content.linkVM>" %>

此外,呈现此视图的控制器操作需要传递正确的模型:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4344887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档