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

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

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

مشکلreturn view

  • چهارشنبه 13 مرداد 1395
  • 11:32
تشکر میکنم

سلام دوستان

من یه متد نوشتم ولی نمیدونم باید چیکار کنم که اون return اخری رو نیاز به گذوشتنش نباشه.ممنون میشم راهنمایی بفرمایید

   public ActionResult show()
        {
            
            var r = TempData["username"];
            var user = db.Users.Where(x => x.UserName == r.ToString());
            //var p = db.allTables;
            allTable all = new allTable();
            foreach (var item in user)
            {
                if (item.UserId==all.user_id)
                {
                    return View(db.allTables.Where(x => x.user_id == all.user_id));
                }
            }
            
            //return View(db.allTables.ToList());

           }

همینی که کامنت کردم

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

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

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 13 مرداد 1395
  • 11:41
public ActionResult show()
     {
          
         var r = TempData["username"];
         var user = db.Users.Where(x => x.UserName == r.ToString());
         //var p = db.allTables;
         allTable all = new allTable();
         foreach (var item in user)
         {
             if (item.UserId==all.user_id)
             {
                 return View(db.allTables.Where(x => x.user_id == all.user_id));
             }
         }
          
         return null;
 
        }

 

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

  • چهارشنبه 13 مرداد 1395
  • 12:13

درسته ولی چون دارم از ویومدل استفاده میکنم باید حتما یه چیزی return بشه.من میخوام((db.allTables.Where(x => x.user_id == all.user_id)ارسال بشه.غیر از foreach نمیشه از چیز دیگه ای استفاده کرد؟؟؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 13 مرداد 1395
  • 12:41

من از کدهاتون چیزی متوجه نشدم

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

  • چهارشنبه 13 مرداد 1395
  • 12:56

ادامه همون کاریه که دیروز سوال پرسیدم در موردش(http://barnamenevisan.org/Forums/Post5356.html)

الان میخوام کاربری که لاگین کرده بتونه املاکی که خودش ثبت کرده رو ببینه ودر صورتی که املاکی برای نمایش نداشته باشه چیزی نشون نده .فقط این foreach کلافه م کرده .غیر از این کدا روش دیگه ای به ذهنم نمیرسه .لطفا راهنمایی کنید

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 13 مرداد 1395
  • 13:52

شما allTable تعریف کردید که خالیه بعد داخل حلقه شرط گذاشتید روی یک object خالی

من درک نمیکنم

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

  • چهارشنبه 13 مرداد 1395
  • 14:19

تغییرش دادم

  var r = TempData["username"];
            var user = db.Users.Where(x => x.UserName == r.ToString());
            //var p = db.allTables;
            //allTable all = new allTable();
            foreach (var item1 in user)
            {
                foreach (var item2 in db.allTables)
                {
                    if (item1.UserId == item2.user_id)
                    {
                        return View(db.allTables.Where(x => x.user_id == item2.user_id));
                    }
                }
            }

اما یه مسئله دیگه ای هم که هست اینه که tempdata ،null هست.

این اکشن تو یه کنترلر دیگه س :

      public ActionResult LoginConfirmed(securityUser user,bool rememberme=false)
        {
            if (Membership.ValidateUser(user.username, user.password)==true)
            {
                FormsAuthentication.SetAuthCookie(user.username, true);
                Session["username"] = user.username;
                TempData["username"] = user.username;
                if (rememberme)
                {
                    HttpCookie c = new HttpCookie("smaeelpourCookie");
                    c.Value = Membership.GetUser(user.username).ProviderUserKey.ToString();
                    c.Expires = DateTime.Now.AddSeconds(40);
                    //c.Expires = DateTime.MaxValue;
                    Response.Cookies.Add(c);

                }
                return RedirectToAction("show", "home");//RedirectToAction("index","home");

            }
            else
            {
                Session["username"] = "";
                return RedirectToAction("login", "account");
            }
        }

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 13 مرداد 1395
  • 14:34

تو کد شما داخل سشن هم ریختید ؟

دیگه چه نیازی به TempData بود ؟

از سشن واکشی کنید

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

  • چهارشنبه 13 مرداد 1395
  • 15:41

فرقی نمیکنه چ توی session و چ توی tempdata وقتی که توی کنترلر دیگه میان null میشن.مگه tempdata برای انتقال اطلاعات بین دو تا کنترلر نیست؟؟؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 13 مرداد 1395
  • 16:02

این لینک رو ببینید

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

  • پنجشنبه 14 مرداد 1395
  • 19:05

مشکل null بودن برطرف شد ممنون فقط

 public ActionResult show()
        {
            var r = Session["username"];
            var user = db.Users.Where(x => x.UserName == r.ToString()).ToList();

            foreach (var item1 in user)
            {
                foreach (var item2 in db.allTables)
                {
                  
                        return View(db.allTables.Where(x => x.user_id == item2.user_id));
                    
                }
            }

            //return View(db.allTables.ToList());

        }

نمیشه به جای foreach از روش دیگه ای استفاده کرد؟؟؟ لطفا راهنمایی بفرمایید

برنامه اروری میگیره ک باید یه return دیگه(کلی) هم بزارم و از اونجایی که return null نمیتونم بزارم چیزی به ذهنم نرسید .حتما باید ویومدل ارسال کنه.

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 15 مرداد 1395
  • 12:22

در کد شما ، درواقع حلقه به هیچ دردی نمیخوره چون در اولین تکرار return کردید

من موضوع کار رو نمیدونم و از کدهاتون هم متوجه نشدم

حلقه رو حذف کنید

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

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

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

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