ASP.NET MVC使用UIHint属性生成DropDownList

 来人把老师拖出I去毙了 发布于 2023-01-18 11:40

我想知道如何使用UIHint属性生成DropDownList.我已经定制了一些预定义的属性,但我不知道如何继续生成DropDownLists.

这是我对我的最后一个做的,我想以类似的方式使用它:

public class CartProduct
{

    [Required]
    [UIHint("Spinner")]
    public int? Quantity { get; set; }

    [Required]
    [UIHint("MultilineText")]
    public string Description { get; set; }

}

Ant P.. 8

这是一个使用泛型的(未经测试的)一般示例.可能有一种更简单的方法来实现同样的目标.

模型:

public class CartProduct
{
    [UIHint("_DropDownList")]
    public DropDownListModel MyItems { get; set; }
}

DropDownListModel类:

public class DropDownListModel
{
    public T SelectedItem { get; set; }

    public IEnumerable Items { get; set; }
}

控制器:

public ActionResult AnAction()
{
    var model = new CartProduct();
    model.MyItems = new DropDownListModel
    {
        Items = _yourListOfItems,
        SelectedItem = _yourSelectedItem
    };

    return View(model);
}

_DropDownList.cshtml编辑器模板:

@model DropDownListModel

@Html.DropDownListFor(m => m.SelectedItem,
    new SelectList(Model.Items, Model.SelectedItem))


最后,您的观点是:

@model CartProduct

@Html.EditorFor(m => m.MyItems)

这为您提供了一个DropDownListModel可以在任何地方使用的通用类型.使用 EditorForUIHint指定编辑器模板并在整个地方重用视图.

1 个回答
  • 这是一个使用泛型的(未经测试的)一般示例.可能有一种更简单的方法来实现同样的目标.

    模型:

    public class CartProduct
    {
        [UIHint("_DropDownList")]
        public DropDownListModel<ItemType> MyItems { get; set; }
    }
    

    DropDownListModel类:

    public class DropDownListModel<T>
    {
        public T SelectedItem { get; set; }
    
        public IEnumerable<T> Items { get; set; }
    }
    

    控制器:

    public ActionResult AnAction()
    {
        var model = new CartProduct();
        model.MyItems = new DropDownListModel<ItemType>
        {
            Items = _yourListOfItems,
            SelectedItem = _yourSelectedItem
        };
    
        return View(model);
    }
    

    _DropDownList.cshtml编辑器模板:

    @model DropDownListModel<object>
    
    @Html.DropDownListFor(m => m.SelectedItem,
        new SelectList(Model.Items, Model.SelectedItem))
    

    最后,您的观点是:

    @model CartProduct
    
    @Html.EditorFor(m => m.MyItems)
    

    这为您提供了一个DropDownListModel可以在任何地方使用的通用类型.使用 EditorForUIHint指定编辑器模板并在整个地方重用视图.

    2023-01-18 11:43 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有