مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

imanplus

عضویت از 1395/10/26

ارسال مقادیر از یک اکشن به اکشن دیگر بدون null شدن

  • شنبه 21 بهمن 1396
  • 11:24
تشکر میکنم

با سلام

من در یک اکشن رکوردی را از ورودی گرفتم ولی برای ثبت در دیتابیس می خوام اطلاعات دریافتی به یک اکشن دیگه بره اونجا یه عملیات دیگه رو این داده ها انجام بدم و بعد ثبت در دیتابیس کنم ولی زمانی که به اکشن دیگه ای میرم تمام فیلدهام null میشه ، خواستم بدونم برای جا به جایی اطلاعات ورودی از یک اکشن به اکشن دیگه بدون اینکه در دیتابیس ذخیره بشه آیا راه استانداردی هست که بشه این جا به جایی رو انجام داد؟

البته با TempData میشه جا به جا کرد ولی فیلدا زیاد باشن سخت و کدهای شلوغی بدست میاد.

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 21 بهمن 1396
  • 11:40

کدهاتون رو قرار بدید تا بررسی کنیم.

کاربر سایت

imanplus

عضویت از 1395/10/26

  • شنبه 21 بهمن 1396
  • 12:07
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 منتقل بشه.

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 21 بهمن 1396
  • 12:25

با استفاده از TempData می تونید این کارو بکنید بدون این که کد هاتون شلوغ بشه:

          // attach to temp data
            
            TempData["User"] = u;

            // get user form temp data
            var user = (User)TempData["User"];

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)