سلام دوستان
من می خوام داده های یک 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); }
سوالتون اصلا واضح نیست لطفا بیشتر توضیح بدید.
ببینید من یه dropdownlist توی ویو دارم با نام RoleId و اونو فقط با دو مقدار از دیتابیس پر کردم یعنی ادمین و یوزر و نمی خوام کاربر سورس صفحه رو دستکاری کنه و آی دی سوپر ادمین رو برای کنترلر بفرسته و و اگه فرستاد نیاز دارم وقتی اطلاعات به کنترلر میاد چک کنم ببینم RoleId جزء همون دوتایی باشه که من می خوام بر اساس کد بالا نمی دونم RoleId رو چطور توی کنترلر بدست بیارم
شما میتونید RoleId رو به نوع Guid تغییر بدید تا قابل حدس نباشد.
اگه نخوام این کار رو انجام بدم چکار باید بکنم چون جاهای دیگه هم نیاز دارم یک سری داده ها رو چک کنم
راه دیگه همان چک کردن است، میتونید برای این که کدهایی تکراری ننویسید از روش هایی مثل ActionFilter ها استفاده کنید.
میشه یکم توضیح بدید؟ چطور به مقدار مثلا roleid دسترسی پیدا کنم؟
فرم ارسالی رو برسی کنید:
public class ValidateModelAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { var roleId = filterContext.HttpContext.Request.Form["RoleId"]; base.OnActionExecuting(filterContext); } }
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)