首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mvc 3中的问题视图类别

mvc 3中的问题视图类别
EN

Stack Overflow用户
提问于 2013-01-18 19:38:28
回答 1查看 49关注 0票数 1

我有一个项目名为MVC1

我有以下两个类:

代码语言:javascript
运行
复制
public class category
{
   public int ID {get;set;}
   public string Name {get;set;}
}

public class detail
{
   public int Id {get;set;}
   public string Name {get;set;}
   public int CategoryID{get;set;}
}

和2个接口

代码语言:javascript
运行
复制
  public inteface ICategory

  {

  IList<category> ListCategory();

  }

  public interface IDetail

  {

  IList<Detail> ListDetail();

  }

和1从接口ICategory继承的模型RCateory

代码语言:javascript
运行
复制
   public IList<Category> FindAllCategory()

    {

        List<Category> Listcategory_ = new List<Category>();

        foreach (var category in Listcategory)

        {

            Listcategory_.Add(category);

        }

        return Listcategory_;

    }

和1从接口IDetail继承的型号名称RDetail

代码语言:javascript
运行
复制
   public IList<Detail> FindAllDetail()

    {

        List<Detail> Listdetail_ = new List<Detail>();

        foreach (var detail in Listdetail_)

        {

            Listdetail_.Add(detail);

        }

        return Listdetail_;

    }

和1个控制器

代码语言:javascript
运行
复制
  DetailController

  private RDetail rDetail = new RDetail();

  private RCategory rCategory = new RCategory();

  public ActionResult ListDetail()

  {

  var detail = rdDetail;

  return View("CreateDetail");

  }

和1个视图类型(cshtml) CreateDetail容器

代码语言:javascript
运行
复制
  @model MVC1.Detail

如何放入@Html.DropDownListFor的类别中

EN

回答 1

Stack Overflow用户

发布于 2013-01-18 20:26:33

与以往一样,在ASP.NET MVC应用程序中,首先要创建一个视图模型类,它将包含视图所需的所有内容:

代码语言:javascript
运行
复制
public class MyViewModel
{
    public Detail Detail { get; set; }
    public IEnumerable<SelectListItem> Categories { get; set; }
}

然后让您的控制器操作填充并将此视图模型传递给视图:

代码语言:javascript
运行
复制
public ActionResult ListDetail()
{
    var model = new MyViewModel();
    model.Detail = rDetail;
    model.Categories = FindAllCategory().Select(x => 
        Value = x.ID.ToString(),
        Text = x.Name
    );
    return View("CreateDetail", model);
}

最后,您的视图将强类型化为视图模型,您将能够显示下拉菜单:

代码语言:javascript
运行
复制
@model MyViewModel
...
@Html.DropDownListFor(x => x.Detail.CategoryID, Model.Categories)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14398141

复制
相关文章

相似问题

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