Asp.net mvc 在我的模型中,我';我有一条信息可以用两种不同的方式显示。如果我为两种方式创建两个字段,如何链接这两个字段?

Asp.net mvc 在我的模型中,我';我有一条信息可以用两种不同的方式显示。如果我为两种方式创建两个字段,如何链接这两个字段?,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,我有一个包含数字代码和名称的任务列表。例如: 100 - "Sweep floor" 200 - "Do laundry" 300 - "Walk the dogs" 在我的模型中,我希望有如下内容: public class Task { public int TaskID { get; set; } public int TaskNumber { get; set; } public string TaskName { get; set; } } 创建任务时,如果

我有一个包含数字代码和名称的任务列表。例如:

100 - "Sweep floor"
200 - "Do laundry"
300 - "Walk the dogs"
在我的模型中,我希望有如下内容:

public class Task
{
    public int TaskID { get; set; }
    public int TaskNumber { get; set; }
    public string TaskName { get; set; }
}
创建
任务时
,如果用户为
任务编号
选择“100”,我希望
任务名称
更改为“扫地”。反之亦然,如果用户选择了
TaskName
“扫地”,我希望
TaskNumber
更改为“100”

将它们分开的目的是为了防止用户只知道任务的名称或编号。字段将按数字和字母顺序进行排序,以便他们能够快速找到他们正在寻找的任务

我知道解决这个问题的一个方法是创建一个JavaScript函数来监视这两个字段。当其中一个字段更改时,其他字段也会更改以与之匹配


还有比这更好的解决办法吗?我宁愿为
TaskNumber
TaskName
制作
Enum
之类的东西,并以某种方式将它们链接起来,而不是用JavaScript硬编码解决方案。

为什么不使用一个自动完成控件?键入“10”或“Sw”会在列表中显示“100-Sweep floor”,这听起来更合理。我有什么特别需要实施的吗?在另一个模型中,我已经有了一个
enum
下拉列表,但它不允许我键入以过滤可能的选择。例如,可以使用(将其附加到文本框,当调用x个字符时,进行ajax调用以获得匹配列表(即
TaskName
TaskName
包含文本)-服务器方法将返回
TaskID
和'joined'
TaskNumber
TaskName
值的集合。当用户从列表中选择项目时,您将关联的
TaskID
分配给绑定到所选任务的模型属性的隐藏输入