با سلام
من در یک اکشن رکوردی را از ورودی گرفتم ولی برای ثبت در دیتابیس می خوام اطلاعات دریافتی به یک اکشن دیگه بره اونجا یه عملیات دیگه رو این داده ها انجام بدم و بعد ثبت در دیتابیس کنم ولی زمانی که به اکشن دیگه ای میرم تمام فیلدهام null میشه ، خواستم بدونم برای جا به جایی اطلاعات ورودی از یک اکشن به اکشن دیگه بدون اینکه در دیتابیس ذخیره بشه آیا راه استانداردی هست که بشه این جا به جایی رو انجام داد؟
البته با TempData میشه جا به جا کرد ولی فیلدا زیاد باشن سخت و کدهای شلوغی بدست میاد.
کدهاتون رو قرار بدید تا بررسی کنیم.
using DataLayer; using Newtonsoft.Json; using SignUp_Email_Phone.Models; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Web; using System.Web.Configuration; using System.Web.Mvc; namespace SignUp_Email_Phone.Controllers { public class AccountController : Controller { // GET: Account [HttpGet] public ActionResult RegisterPri() { return View(); } [HttpPost] [ValidateAntiForgeryToken] public ActionResult RegisterPri(User u) { bool isCapthcaValid = ValidateCaptcha(Request["g-recaptcha-response"]); try { if (isCapthcaValid) { if (ModelState.IsValid) { //searching for an email that Entered by user in Databse Entity db = new Entity(); var email = db.Users.FirstOrDefault(x => x.Email == u.Email.Trim().ToLower()); if (email != null) { @ViewBag.Message = "این ایمیل قبلا ثبت شده است"; } else { Users.SendMail(u, "i.jalali88@gmail.com", "0000"); return RedirectToAction("RegisterSlv", u); } } } return View(u); } catch { return View(); } }
public ActionResult RegisterSlv() { return View(); } [HttpPost] public ActionResult RegisterSlv(User u) { Entity db = new Entity(); if(ModelState.IsValid) { if(ViewBag.Pin == u.Pin) { db.Users.Add(u); db.SaveChanges(); } } return View(); } } }
الان u حاوی اون اطلاعاتی هست که می خوام از اکشن RegisterPri به RegisterSlv منتقل بشه.
با استفاده از TempData می تونید این کارو بکنید بدون این که کد هاتون شلوغ بشه:
// attach to temp data TempData["User"] = u; // get user form temp data var user = (User)TempData["User"];
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)