我试图在Visual Studio中的ASP.NET核心Web应用程序上构建社交网络。
有会员和墙,会员可以发帖。
我使用Tinymce作为textarea
的编辑工具,我应该将textarea
格式的文本以HTML格式保存到我的本地Visual Studio数据库,以及{正在发布的已连接用户的{1}}。
当我运行应用程序并尝试发布时,这些似乎都不起作用。我在数据库中为UserId
和null
获得了Text
条目。
虽然UserId
在UserManager
文件上正常运行并确实返回.cshtml
,但我无法在UserId
文件中使用1} >
到目前为止
.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
我得到一个&#34;未分配的局部变量&#34; 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
吗?
答案 0 :(得分:1)
您似乎使用了依赖注入,因此您可以尝试构造函数注入
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();
}
答案 1 :(得分:0)
我发现了textarea
问题。
该行应该是这样的:
<textarea asp-for="Posts.Text" id="mytextarea" rows="2" cols="80" class="form-control"></textarea>
我忘了包含class="form-control"
,name="txt"
以某种方式导致问题,需要省略。