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

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

کاربر سایت

mohammad-zarei62

عضویت از 1396/12/18

چطور میشه داده های یک ویو رو در کنترلر چک کرد؟

  • جمعه 10 فروردین 1397
  • 11:31
تشکر میکنم

سلام دوستان

من می خوام داده های یک dropdownlist مربوط به نقش کاربری رو چک کنم که کاربر نیاد نقش کاربری سوپر ادمین رو انتخاب کنه

[HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "UserId,RoleId,CompanyId,JobTitleId,Name,UserName,Password,Mobile,Email,Address,ActiveCode,IsActive,CreatDate,ActiveToDate")] User user)
        {
            int ID = db.Users.FirstOrDefault(u => u.UserName == User.Identity.Name).CompanyId;
            if (ModelState.IsValid)
            {
                //اینجا باید چک کنم که کاربر نقش کاربری خودش رو سوپر ادمین انتخاب نکرده باشه
                user.CompanyId = ID;
                user.CreatDate = DateTime.Now;
                user.UserName = user.UserName.Trim();
                user.ActiveToDate = DateTime.Now.AddDays(-1);
                user.Password = Classes.Labkhand.EncryptToSha2(user.Password);
                db.Users.Add(user);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            ViewBag.JobTitleId =
                new SelectList(
                    db.Jobs.Where(
                        n => n.CompanyId == db.Users.FirstOrDefault(u => u.UserName == User.Identity.Name).CompanyId),
                    "jobID", "Name");
            ViewBag.RoleId = new SelectList(db.Roles.Where(u => u.RoleName == "user" || u.RoleName == "admin"), "RoleId",
                "RoleType");
            return View(user);
        }

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

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

سهیل علیزاده

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

  • جمعه 10 فروردین 1397
  • 17:49

سوالتون اصلا واضح نیست لطفا بیشتر توضیح بدید.

کاربر سایت

mohammad-zarei62

عضویت از 1396/12/18

  • جمعه 10 فروردین 1397
  • 17:53

ببینید من یه dropdownlist توی ویو دارم با نام RoleId و اونو فقط با دو مقدار از دیتابیس پر کردم یعنی ادمین و یوزر و نمی خوام کاربر سورس صفحه رو دستکاری کنه و آی دی سوپر ادمین رو برای کنترلر بفرسته و و اگه فرستاد نیاز دارم وقتی اطلاعات به کنترلر میاد چک کنم ببینم RoleId جزء همون دوتایی باشه که من می خوام بر اساس کد بالا نمی دونم RoleId رو چطور توی کنترلر بدست بیارم

کاربر سایت

سهیل علیزاده

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

  • جمعه 10 فروردین 1397
  • 18:10

شما میتونید RoleId رو به نوع  Guid تغییر بدید تا قابل حدس نباشد.

کاربر سایت

mohammad-zarei62

عضویت از 1396/12/18

  • جمعه 10 فروردین 1397
  • 18:14

اگه نخوام این کار رو انجام بدم چکار باید بکنم چون جاهای دیگه هم نیاز دارم یک سری داده ها رو چک کنم

کاربر سایت

سهیل علیزاده

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

  • جمعه 10 فروردین 1397
  • 18:18

راه دیگه همان چک کردن است، میتونید برای این که کدهایی تکراری ننویسید از روش هایی مثل ActionFilter ها استفاده کنید.

کاربر سایت

mohammad-zarei62

عضویت از 1396/12/18

  • جمعه 10 فروردین 1397
  • 18:48

میشه یکم توضیح بدید؟ چطور به مقدار مثلا roleid دسترسی پیدا کنم؟

کاربر سایت

سهیل علیزاده

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

  • جمعه 10 فروردین 1397
  • 19:09

فرم ارسالی رو برسی کنید:

    public class ValidateModelAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var roleId = filterContext.HttpContext.Request.Form["RoleId"];
            
            base.OnActionExecuting(filterContext);
        }
    }

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

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

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

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