2012-02-04 2 views
0

У меня есть форма, заполняемая пользователями, а затем она отправляется мне по электронной почте.Создание уникального идентификатора в форме

Я пытаюсь получить пример того, как я создам идентификатор (основанный на моих собственных соглашениях), который я могу использовать, чтобы отслеживать ответы (и отправлять обратно пользователю, чтобы они могли ссылаться на него позже).

Это соглашение Я стремлюсь к:

[YEAR] - [SERVICE CODE] - [ДАТА (ММДД)] - [TIME]

Например: «2012-ABC-0204- 1344" . Я решил добавить соглашение TIME в том случае, когда два разных пользователя выбирают одну и ту же услугу в одну и ту же дату, а не пытаются выяснить, как применять ее только в том случае, если два пользователя выбрали одну и ту же услугу в ту же дату.

Итак, сценарий заключается в том, что после того, как пользователь через моих мастеров вводит их информацию, а затем нажмите «Отправить», что этот уникальный идентификатор будет создан и привязан к модели. Может быть, что-то вроде @ Model.UniqueID, чтобы в ответе на электронную почту я отправлял пользователю его сообщение и говорит «Ссылка на этот идентификатор для любого будущего общения».

Спасибо за любые советы/помощь/примеры.

ответ

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. Это то, что мы использовали в прошлом, чтобы предоставить клиентам - руководство или его часть. ЕСЛИ вы используете часть одного, убедитесь, что у вас есть логика для обработки дублирующего ключа. Вам не нужно беспокоиться об этом, но при использовании полного руководства. Если идея заключается только в том, чтобы дать клиенту, то игнорировать остальные данные и просто использовать руководство, так как его можно легко найти в базе данных.

+0

Я ценю вашу мудрость о GUID, и ее заинтересовало меня. Согласие, которое я обсуждал, используется внутренне для решения вопросов клиента, но я вижу, например, что это уникальный идентификатор клиента, помимо «вопроса» (у одного клиента может быть много вопросов). Я определенно буду держать этот пример удобным для этой цели в будущем. Когда вы говорите «игнорировать остальную часть данных» выше, могу ли я просто отключить «return string.Format ...» и получить свой GUID? – REMESQ

+0

Или что-то мне не хватает? Если бы вы могли оставить свой первоначальный пример и обновить его еще один для строго GUID, я был бы очень признателен (если его не слишком много навязать). – REMESQ

+0

ya, вместо того, чтобы вызывать GenerateUniqueId, установите model.UniqueId = Guid.NewGuid.ToString() (в строку, предполагающую, что вы хотите показать ее клиенту, но если вы хотите сохранить его в базе данных, вы можете сохранить его как «uniqueidentity» тип столбца –

Смежные вопросы