![](/img/trans.png)
[英]Passing an interface to an ASP.NET MVC Controller Action method
[英]Action passing null instead of string in asp.net mvc application
我絕對堅持不懈,我創建了一個動作,使用Identity Framework將新的Identity Role添加到數據庫中。 不幸的是,無論何時執行,它都會返回失敗信息,並且在我插入斷點之后,我確定我將傳遞null作為newRole
的值,而不是按預期的方式傳遞superadmin。
以下是我使用的網址,與我使用的網址完全相同:
https://localhost:44344/account/addrole/superadmin
這是相應的操作:
[Authorize(Roles = RoleNames.CanAddUsers)]
public ActionResult AddRole(string newRole)
{
var roleStore = new RoleStore<IdentityRole>(new ApplicationDbContext());
var roleManager = new RoleManager<IdentityRole>(roleStore);
var result = roleManager.Create(new IdentityRole(newRole));
return result.Succeeded
? Content(newRole + " added to database.")
: Content("Failed to add " + newRole + ".");
}
現在,我已經檢查並仔細檢查了我作為登錄用戶的身份,並測試了該角色是否具有CanAddUsers角色,並且我沒有被重定向到登錄名,而只是收到Failed to add .
確認一下,這是我的路線,但我找不到其他暗示我的代碼可能以其他方式路由的信息。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我敢肯定,這可能是一個非常明顯的錯誤,但我找不到它!
如果只想使用MapRoute,則應該知道將使用可選參數的名稱(本例中為id
)。
那么應該你的行動的參數重命名為id
,或者明確地說,您使用newRole
通過寫變量addrole?newRole=superadmin
。
否則,正如其他人指出的那樣,您可能更喜歡使用POST而不是GET。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.