在 asp.net mvc 应用程序中传递 null 而不是字符串的动作

斯图

我完全坚持这一点,我创建了一个操作,使用身份框架将新的身份角色添加到我的数据库中。不幸的是,无论何时执行,它都会返回失败,在我插入断点后,我确定我将 null 作为值传递给newRole而不是像预期的那样传递超级管理员。

以下是我正在使用的 URL,与我使用的完全一样:

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 }
);

我确信此时这可能是一个非常明显的错误,但我找不到它!

  • asp.net 身份版本:2.2.1
  • asp.net mvc 版本:5.2.3
  • 实体框架 6.3.1
拉法龙

如果您只想使用 MapRoute,那么您应该知道id将使用可选参数的名称(在您的情况下)。

然后,您应该将 Action 的参数重命名为id,或者newRole通过编写addrole?newRole=superadmin.

否则,正如其他人指出的那样,您可能更喜欢为此使用 POST 而不是 GET。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

User.Identity.Name在ASP.NET Core MVC应用程序中返回null

如何使用Autofac使N层ASP.NET MVC Core 1.0应用程序中的连接字符串可用

.NET Core MVC Web应用程序从查询字符串而不是模型中获取值

验证ASP.NET MVC中的字符串数组

在两个asp.net MVC Web应用程序之间传递非ASCII字符将不会被识别

ASP.NET MVC应用程序中的分页

在 ASP.NET MVC 应用程序中安装 Bootstrap

使用 Azure 上的 Application Insights 在 ASP.Net MVC 应用程序上捕获搜索查询字符串

带有查询字符串参数的asp.net核心mvc应用程序表单发布

如何将连接字符串正确存储在环境变量中以供生产ASP.Net Core MVC应用程序检索

Azure中的ASP.NET MVC应用程序以及MySQL应用程序内

ASP.NET MVC通过ajax调用将double传递给动作(我收到的是null)

将jquery中的字符串传递给asp.net mvc ActionResult

在 Asp.Net MVC 中以编程方式呈现视图并传递查询字符串

将数据从ASP .NET MVC应用程序传递到NHibernate事件侦听器

ASP.NET Core MVC标记帮助程序参数中的字符串文字

使用IConfigurationRoot将应用程序的连接字符串向下传递到ASP.NET 5中的存储库类库

从ASP.NET MVC端点返回JavaScript对象文字,而不是JSON字符串

ASP.NET MVC路由-Url.Action发送查询字符串而不是路由值

ASP.NET MVC:如何绕过MVC应用程序中的控制器?

将HTML字符串从控制器传递到View ASP.Net MVC

ASP.NET MVC 5中的Null引用异常

CheckBox 在 ASP.NET MVC 中总是返回 null

在ASP.NET MVC中回发模型为null

ASP.NET MVC 中的发布操作总是收到 null

为什么将动作参数转换为ASP Net Core中的查询字符串

什么是应用程序变量?如何在ASP.NET MVC中声明应用程序变量?

在ASP.NET MVC应用程序中重新启动应用程序时擦除的数据

Azure 应用服务上的 ASP.NET Core 未从应用程序设置中读取连接字符串