SelectList文本中的多个值

时间:2013-01-25 19:10:40

标签: c# asp.net-mvc-3

我正在尝试在dropdownlist文字中显示多个值。下面举例说明。

SelectList(Parts, "pno", "pcode"+"pname")

,其中

pno是部件号。

pcode是部分代码。

pname是部件名称

现在请告诉我如何使用viewmodel连接部分代码和名称(我想使用域模型来实现)。

2 个答案:

答案 0 :(得分:8)

根据microsoft文档,SelectList(IEnumerable,String,String)通过使用列表,数据值字段和数据文本字段的指定项来初始化SelectList类的新实例。

http://msdn.microsoft.com/en-us/library/system.web.mvc.selectlist%28v=vs.108%29.aspx

为此,您需要将名称连接到模型上的新属性。下面的堆栈溢出答案有8个ups是我最喜欢的方法。

How can I combine two fields in a SelectList text description?

在你的情况下,它看起来像这样......

public class Model
{
    public string pcode { get; set; }
    public string pname { get; set; }
    public string ConcatDescription { get; set; }

    public string ConcatDescription 
    {
        get 
        {
            return string.Format("{0} {1}", pcode , pname );
        }
    }
}

然后你可以直接调用该属性。

SelectList(Parts, "pno", "ConcatDescription ")

编辑:在代码中添加了澄清。

答案 1 :(得分:3)

我不确定这是否会有所帮助。在c#的观点中,您可以像

那样构建类
public class Parts
{
    public string PartCode { get; set; }

    public string PartName { get; set; }

    public string PartNo
    {
        get
        {
            return PartCode + PartName;
        }
        set;
    }
}

然后使用选择列表,如。

SelectList(Parts, "PartNo")