在表单中创建唯一ID

时间:2012-02-04 18:44:34

标签: asp.net-mvc-3

我有一个用户填写的表单然后通过电子邮件发送给我。

我正在尝试获取一个示例,说明如何创建一个ID(基于我自己的约定),我可以使用它来跟踪响应(并发送回用户以便以后可以引用它)。

这是我正在努力的惯例:

[年] - [服务代码] - [日期(MMDD)] - [时间]

例如:“2012-ABC-0204-1344”。我想在两个不同用户在同一日期选择相同服务的实例中添加TIME约定,而不是试图弄清楚如何只应用它,如果两个用户在同一天选择了相同的服务。

因此,方案是在用户通过我的向导输入他们的信息然后单击“提交”后,将创建此唯一ID并将其附加到模型。也许类似于@ Model.UniqueID,以便在我发送给用户的电子邮件回复中显示并显示“为将来的任何通信引用此ID”。

感谢您提供任何建议/帮助/示例。

1 个答案:

答案 0 :(得分:0)

在你的帖子中


[HttpPost]
public ActionResult Create(YourModel model)
{
   model.UniqueId = GenerateUniqueId(serviceCode); 
}

public string GenerateUniqueId(string serviceCode)
{
   return string.Format("{0}-{1}-{2}", DateTime.Now.Year, serviceCode, Guid.NewGuid().ToString().Replace("-",""); //remove dashes so its fits into your convention
}

但这似乎是因为我遗漏了你问题的一部分。如果你真的想要独一无二,请使用Guid。这就是我们过去用来给客户的东西 - 一个guid或一部分。如果您使用其中一部分,请确保您具有处理重复键的逻辑。如果使用完整的guid,你不需要担心这个问题。如果想法只是给客户,然后忽略其余的数据,只需使用guid,因为它可以很容易地在数据库中查找。