我正在尝试在Visual Studio中的ASP.NET核心Web应用程序上构建一个社交网络。有会员资格和一堵墙,会员可以在那里发布帖子。我正在使用Tinymce作为带有编辑工具的textarea
,并且我应该将textarea
表单中的文本保存到本地Visual Studio数据库中,以及正在发布的已连接用户的UserId
。
当我运行应用程序并尝试post时,这两种方法似乎都不起作用。我在数据库中为Text
和UserId
获取了一个null
条目。
虽然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
吗?
发布于 2018-06-05 07:53:13
我解决了textarea
的问题。代码行应该是这样的:
<textarea asp-for="Posts.Text" id="mytextarea" rows="2" cols="80" class="form-control"></textarea>
我忘了包含class="form-control"
,而name="txt"
不知何故造成了问题,需要省略。
https://stackoverflow.com/questions/50688612
复制相似问题