У меня есть метод, называемый GetPrivlidge()
, что я буду использовать его в каждом контроллере, этот метод используется для того, что будет вошедшего пользователь увидит и что не будет видеть это методМогу ли я отправить ViewBag из контроллера в контроллер пылесоса в MVC?
public void GetPrivlidge()
{
string name = System.Web.HttpContext.Current.User.Identity.Name;
name = EncriptionAndDecription.Encrypt(name);
int UserId = (from c in db.users where c.Arabicusername == name select c.Usersid).SingleOrDefault();
SamahyatOfUser S = (from SS in db.SamahyatOfUsers where SS.User_Id == UserId select SS).SingleOrDefault();
ViewBag.Pri = S;
string RoleName = (from R in db.Roles where R.User_ID == UserId && R.UserName == name select R.RoleName).SingleOrDefault();
if (RoleName.Equals(EncriptionAndDecription.Encrypt("Admin")))
{
ViewBag.ADMIN = true;
}
else
{
ViewBag.ADMIN = false;
}
}
Я использую ViewBag.Pri
для проверить в макете для привилегий, я должен отправить это ViewBag
в каждом действии, так что я решил сделать контроллер, который имеет все общие методы это мой контроллер
public class AllRequiredDataController : Controller
{
//
// GET: /AllRequiredData/
mts_exchangeEntities db = new mts_exchangeEntities();
//this Method is used in privlidge that make user do thing and dont make anthor thing (Do or not Do)
#region privlidge_Data
public void GetPrivlidge()
{
string name = System.Web.HttpContext.Current.User.Identity.Name;
name = EncriptionAndDecription.Encrypt(name);
int UserId = (from c in db.users where c.Arabicusername == name select c.Usersid).SingleOrDefault();
SamahyatOfUser S = (from SS in db.SamahyatOfUsers where SS.User_Id == UserId select SS).SingleOrDefault();
ViewBag.Pri = S;
string RoleName = (from R in db.Roles where R.User_ID == UserId && R.UserName == name select R.RoleName).SingleOrDefault();
if (RoleName.Equals(EncriptionAndDecription.Encrypt("Admin")))
{
ViewBag.ADMIN = true;
}
else
{
ViewBag.ADMIN = false;
}
}
#endregion
}
и _layOut
Я беру это ViewBag
и сделать бросок на в и ем гк с привилегиями, как этот
FinalMts.Models.SamahyatOfUser S = (FinalMts.Models.SamahyatOfUser)ViewBag.Pri;
и в действии я сделать объект Controller и вызвать метод GetPrivlidge()
как этот
AllRequiredDataController Required = new AllRequiredDataController();
public ActionResult AddCurrencyPrices()
{
//get privlidg Data
Required.GetPrivlidge();
return View();
}
но layout
не видят сообщение о ViewBag.Pri
и ошибки сказать, что
Ссылка на объект не установлена в экземпляр объекта.
этот контроллер не может видеть ViewBag
, если да, то что я должен делать, чтобы справиться с этой ViewBag
?
спасибо большое, что вы спасли мое время;) :) –