سلام
من در برنامم می خوام ایمیل و شماره همراه رو از کاربر بگیرم و ثبت نام اولیه رو انجام بدم . کاربر بعد از وارد کردن ایمیل و شماره همراه و همچنین تکمیل کپچا در فرم روی دکمه ثبت میزنه و به فرم دوم هدایت میشه . فرم دوم فقط یک ورودی دارد که باید یه کد 4 رقمی که به ایمیل یا شماره همراه طرف فرستاده شده رو وارد این قسمت کنه تا بعد از چک کردن کد مراحل بعدی انجام بشه . حالا مشکل من اینه که در فرم دوم کد وارد شده رو چک کنم تا در صورت درست بودن به مرحله بعد بره ولی از فرم اول داده هایی که کاربر وارد کرده بوده رو لازم دارم تا بتونم کاربر رو پیدا کنم و با یک مقایسه ورودی فرم دوم رو چک کنم ولی در فرم دوم نمی تونم طرف تو فرم اول رو پیدا کنم لطفا یه راهنمایی بفرمائید باید چه کنم . با تشکر
قسمت کنترلر- اکشن اول
public ActionResult PrimaryRegister()
{
return View();
}
[HttpPost]
public ActionResult PrimaryRegister(PrimaryRegister model)
{
// Code for validating the CAPTCHA
if (this.IsCaptchaValid("Captcha is not valid"))
{
//Make random number
Entity db = new Entity();
Random RND = new Random();
PrimaryRegister rec = new PrimaryRegister
{
Mobile = model.Mobile,
Email = model.Email,
CodeReg = RND.Next(1000, 9999).ToString()
};
TempData["TempReg"] = rec.CodeReg;
TempData["DataEmail"] = rec.Email;
db.PrimaryRegisters.Add(rec);
db.SaveChanges();
// Send Mail - E-mail activation code
MailMessage mail = new MailMessage();
mail.To.Add(model.Email);
mail.From = new MailAddress("i.jalali88@gmail.com");
mail.Subject = "کد فعال سازی حساب کاربری";
string BodyF = "<p>Email From: {0}</p><p>Email To:({1})</p><p>Message:</p><p>{2}</p>";
mail.Body = string.Format(BodyF, "i.jalali88@gmail.com", rec.Email, rec.CodeReg);
// mail.Body = Body;
mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new System.Net.NetworkCredential
("i.jalali88@gmail.com", "000000");// Enter seders User name and password
smtp.EnableSsl = true;
smtp.Send(mail);
return RedirectToAction("Valid");
}
ViewBag.ErrMessage = "Error: captcha is not valid.";
return View();
}
قسمت کنترلر - اکشن دوم
public ActionResult Valid()
{
return View();
}
[HttpPost]
public ActionResult Valid(PrimaryRegister MR)
{
Entity db = new Entity();
string DataReg = TempData["TempReg"].ToString();
string DataEmail = TempData["DataEmail"].ToString();
var record = db.PrimaryRegisters.Where(x => x.Email == DataEmail).Single();
if (DataEmail != null )
{
if (record.CodeReg == MR.CodeReg)
{
return RedirectToAction("PassAccount");
}
else
{
ViewBag.ErrMessage = "کد وارد شده همخوانی ندارد لطفا کد صحیح را وارد نمائید.";
}
}
return View();
}