程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

在 Razor 页面 WebApplication 中将帖子从文本区域保存到数据库

发布于2023-12-26 22:15     阅读(1103)     评论(0)     点赞(1)     收藏(1)


我正在尝试在 Visual Studio 中的 ASP.NET Core Web 应用程序上构建社交网络。有会员资格和一堵墙,会员可以在那里发帖。我使用 Tinymce 作为textarea编辑工具,我应该将textareaHTML 表单中的文本以及UserId正在发帖的连接用户的文本保存到我的本地 Visual Studio 数据库中。

当我运行应用程序并尝试发布时,这些似乎都不起作用。null在数据库中获取了Text和 的条目UserId

虽然可以在文件UserManager上正常工作.cshtml并返回UserId,但我无法让它在.cs文件上工作

到目前为止,该.cshtml文件的相关代码:

    @using Microsoft.AspNetCore.Identity
    @inject UserManager<ApplicationUser> UserManager
    @model IndexModel
    @{
        ViewData["Title"] = "Home page";
    }
    <form asp-route-returnUrl="@Model.ReturnUrl" method="post" enctype="multipart/form-data" asp-controller="UploadFiles" asp-action="Index">
        <div class="form-group">
            <p>You are connected and can post as @UserManager.GetUserId(User)</p>
            <textarea name="txt" id="mytextarea" rows="2" cols="80" asp-for="Posts.Text" >
            </textarea>
        </div>
        <br />
        <div class="form-group">
            <input type="submit" value="Post" class="btn btn-default" />
        </div>
    </form>

文件相关代码.cs

    private readonly proj.Data.ApplicationDbContext _context;

    public IndexModel(proj.Data.ApplicationDbContext context)
    {
        _context = context;
    }    
    public Models.Posts Posts { get; set; }
    public async Task<IActionResult> OnPostAsync(string returnUrl = null)
    {
        UserManager<Data.ApplicationUser> UserManager;
        var post = new Models.Posts {UserId = UserManager.GetUserId(User), Text = Posts.Text };
        _context.Posts.Add(post);
        await _context.SaveChangesAsync();

        return Page();
    }

我收到“未分配的局部变量”错误UserManager您能帮我textarea正确获取内容并UserManager正确定义吗?


解决方案


您似乎已经使用过依赖注入,因此您可以尝试构造函数注入

private readonly proj.Data.ApplicationDbContext _context;

private UserManager<Data.ApplicationUser> _userMannger;

public IndexModel(proj.Data.ApplicationDbContext context, 
   UserManager<Data.ApplicationUser> user)
{
   _userMannger= user;
    _context = context;
}   
public Models.Posts Posts { get; set; }
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
    var post = new Models.Posts {UserId = _userMannger.GetUserId(User), Text = Posts.Text };
    _context.Posts.Add(post);
    await _context.SaveChangesAsync();

    return Page();
}



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.qianduanheidong.com/blog/article/533300/94fee73e7cd6b2257338/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

1 0
收藏该文
已收藏

评论内容:(最多支持255个字符)