這裏是我正在做的事情,現在,宣告的Roles
允許訪問我的控制器操作方法的字符串:你建議我用什麼來靜態創建一個字符串值的集合?
[Role(Roles="Regular User, Accounting, Administrator")]
public ActionResult ChangeAvatar()
{
if (User.Identity.IsAuthenticated)
{
var user = _userRepository.FindUserByEmail(User.Identity.Name);
var model = new ChangeAvatarModel();
model.CurrentAvatarUrl = user.AvatarUrl;
return View(model);
}
return RedirectToAction("Login", "Account");
}
我不想寫了Roles
作爲一個字符串,因爲我可能會輸錯和導致意外的錯誤。我寧願給他們寫一次,並完成它。
你對這個用例有什麼建議? A dictionary<enum, string>
?
[Role(Roles=DefinedRoles.Accounting)] // Would return string: "Regular User, Account"
public ActionResult ChangeAvatar()
{
if (User.Identity.IsAuthenticated)
{
var user = _userRepository.FindUserByEmail(User.Identity.Name);
var model = new ChangeAvatarModel();
model.CurrentAvatarUrl = user.AvatarUrl;
return View(model);
}
return RedirectToAction("Login", "Account");
}
絕對是最簡單的方法。 – verdesmarald
好吧 - 現在我感覺很傻。時間起牀散步。謝謝! – sergserg
雖然這不是類型安全的,但您仍然需要可以包含任何值的字符串數據類型。想象一下,加入團隊的新開發人員不知道存在一個不斷定義的問題。他將傳遞一個字符串而不使用常量。我會進一步尋找類型安全的解決方案。 – Shikyo