Mysql .Net核心MVC表单提交发布到数据库,但视图引发错误

Mysql .Net核心MVC表单提交发布到数据库,但视图引发错误,mysql,model-view-controller,visual-studio-code,asp.net-core-3.0,Mysql,Model View Controller,Visual Studio Code,Asp.net Core 3.0,正如标题所暗示的,将数据发布到数据库不是问题。问题是一旦发布数据,网页本身会发生什么变化。基本上,我希望用户在提交表单后留在页面上。在添加公司的详细信息后,用户单击submit,会收到一条消息说“AddSuccessful”,表单将被清除,然后准备再次提交 取而代之的是,数据被发送,但随后我得到一个错误: InvalidOperationException:未找到视图“AddCompany”。搜索了以下地点: /视图/AddCompany/AddCompany.cshtml /视图/Shared

正如标题所暗示的,将数据发布到数据库不是问题。问题是一旦发布数据,网页本身会发生什么变化。基本上,我希望用户在提交表单后留在页面上。在添加公司的详细信息后,用户单击submit,会收到一条消息说“AddSuccessful”,表单将被清除,然后准备再次提交

取而代之的是,数据被发送,但随后我得到一个错误:

InvalidOperationException:未找到视图“AddCompany”。搜索了以下地点: /视图/AddCompany/AddCompany.cshtml /视图/Shared/AddCompany.cshtml

为了节省空间,我不会显示每个部分的所有代码,但希望您能理解

型号代码:

protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<CommunicationDetails>(entity =>
            {
                entity.HasKey(e => e.FirstContactDate)
                    .HasName("PRIMARY");

                entity.Property(e => e.FirstContactDate).HasColumnType("date");

                entity.Property(e => e.CompanyName)
                    .IsRequired()
                    .HasColumnType("varchar(50)")
                    .HasCharSet("latin1")
                    .HasCollation("latin1_swedish_ci");

                entity.Property(e => e.FirstContactMethod)
                    .IsRequired()
                    .HasColumnType("varchar(20)")
                    .HasCharSet("latin1")
                    .HasCollation("latin1_swedish_ci");
查看代码:

<form id="company-form" asp-controller="AddCompany" asp-action="AddCompany" method="post">
            <div class="form-group">
                <label class="col-sm-4" for="companyName">Company Name</label>
                <input type="text" asp-for="companyName" id="companyName" class="form-control-sm col-sm-6">
            </div>      
            <div class="form-group">
                <label class="col-sm-4" for="publicEmail">Public Email</label>
                <input type="text" asp-for="publicEmail" id="publicEmail" class="form-control-sm col-sm-6">
            </div>
            <div class="form-group">
                <label class="col-sm-4" for="contactPersonOne">Contact Person 1</label>
                <input type="text" asp-for="contactPersonOne" id="contactPersonOne" class="form-control-sm col-sm-6">
            </div>

公司名称
公开电子邮件
联系人1
抱歉,如果这篇文章太长了。不确定要包含多少代码。请忽略这些奇怪的凹痕;在我的IDE中一切正常


此外,我使用的是VS代码,因此很有可能基于Visual Studio的解决方案无法解决此问题。例如,使用控制器构建视图对我来说似乎不是一个选项。

不完全确定这在技术上是否应该是一个注释,但我解决了这个问题

我仍然不知道上面的代码哪里出了问题,但更大的问题是我的方法。我从一开始就应该做的是遵循有关Microsoft文档的教程:

我不知道模型/视图/控制器的CRUD代码可以通过几个简单的命令来完成。我认为这样的脚手架只适用于VisualStudio,因为当我右键单击YouTube教程上的内容时,使用VS代码时,脚手架选项并不适用于我。现在我知道我可以做同样的事情,只需通过CLI

因此,整体的收获是:不要随意地为你想做的每一件小事寻找教程。只需按照Microsoft文档上的教程进行操作,这些文档将处理项目的大部分内容(如CRUD)。在安装教程中要求您安装的软件包时,请记住了解.Net核心版本

<form id="company-form" asp-controller="AddCompany" asp-action="AddCompany" method="post">
            <div class="form-group">
                <label class="col-sm-4" for="companyName">Company Name</label>
                <input type="text" asp-for="companyName" id="companyName" class="form-control-sm col-sm-6">
            </div>      
            <div class="form-group">
                <label class="col-sm-4" for="publicEmail">Public Email</label>
                <input type="text" asp-for="publicEmail" id="publicEmail" class="form-control-sm col-sm-6">
            </div>
            <div class="form-group">
                <label class="col-sm-4" for="contactPersonOne">Contact Person 1</label>
                <input type="text" asp-for="contactPersonOne" id="contactPersonOne" class="form-control-sm col-sm-6">
            </div>