【问题标题】:ASP.NET MVC changing post method to save userIdASP.NET MVC 更改 post 方法以保存 userId
【发布时间】:2019-11-24 07:44:12
【问题描述】:

我是 ASP.Net MVC 的新手,自己学习它。 我正在尝试创建一个网络应用程序以允许用户在线发送请求, 只是我必须在我的数据库中的表,使用 IdentityDbContext 生成 userTable,我得到了另一个表'Fatwa', 用户发送请求并将其保存在带有 UserID 的 Fatwa Table 中,以参考哪个用户发送请求。

我的问题是我使用脚手架收到了 POST 请求,它工作正常,但我不知道如何将 userID 与 Post 请求一起附加,

我确实在数据库中将其设为 ForeignKey,但不知道如何编辑我的发布请求以允许它与请求一起保存用户 ID。

请帮帮我

谢谢

这是 POST 请求

   // POST: api/Fatwas
        [HttpPost]
        public async Task<IActionResult> PostFatwa([FromBody] Fatwa fatwa)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            _context.Fatwa.Add(fatwa);
            await _context.SaveChangesAsync();

            return CreatedAtAction("GetFatwa", new { id = fatwa.FatwaID }, fatwa);
        }

【问题讨论】:

    标签: asp.net asp.net-mvc model-view-controller


    【解决方案1】:

    如果我理解你需要当前的用户 id,在 Fatwa 类中创建用户对象以建立用户和 fatwa 之间的关系,那么你可以从当前上下文中获取用户 HttpContext context 在上下文中有context.User?.Identity.Name 等等

    【讨论】:

    • 我有private readonly AuthenticationContext _context; private UserManager&lt;ApplicationUser&gt; _userManger;,我只想在每个请求中保存用户ID,以便管理员知道谁发送了请求
    • @AAaaAA 你使用的是 mvc 还是 mvc 核心?
    • 我正在使用带角度的 asp.net
    • @AAaaAA 从你可以从上下文中得到的名字你可以得到id var user = await UserManager.FindByNameAsync(userName); var userId = user.Id;
    • 哦,现在我明白了,在 Fatwa 表中有用户对象,您需要通过 id 获取用户并将其传递给 fatwa.user 对象,例如 fatwa.user = getuserbyId(1)跨度>
    猜你喜欢
    • 2012-11-03
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    相关资源
    最近更新 更多