C# ASP.NET控制器写入数据库时出错

C# ASP.NET控制器写入数据库时出错,c#,asp.net-mvc,database,C#,Asp.net Mvc,Database,告诉我为什么在使用db.Test.Add(view)方法时会出现这样的错误; 错误:CS1503参数1:无法从“DC.Models.View”转换为“DC.Models.SaveComments.Test”。 我尝试将数据写入数据库,代码: 我的控制器: namespace DC.Controllers { public class CommentController : Controller { public ActionResult SaveRecord(Vi

告诉我为什么在使用db.Test.Add(view)方法时会出现这样的错误; 错误:CS1503参数1:无法从“DC.Models.View”转换为“DC.Models.SaveComments.Test”。 我尝试将数据写入数据库,代码:

我的控制器:

namespace DC.Controllers
{
    public class CommentController : Controller
    {
        public ActionResult SaveRecord(View model)
        {
            try
            {
                DataComment db = new DataComment();
                View view = new View();
                view.Id = model.Id;
                view.Name = model.Name;

                db.Test.Add(view);

                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return RedirectToAction("Index");
        }
    }
}
型号:

    namespace DC.Models.SaveComments
    {
        public class DataComment : DbContext
        {
            public DataComment()
                : base ("CC")
            { }
            public DbSet<Test> Test { get; set; }
        }
    }

namespace DC.Models.SaveComments
{
    public class Test
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

namespace DC.Models
{
    public class View
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}
namespace DC.Models.SaveComments
{
公共类DataComment:DbContext
{
公共数据评论()
:base(“CC”)
{ }
公共数据库集测试{get;set;}
}
}
命名空间DC.Models.SaveComments
{
公开课考试
{
公共int Id{get;set;}
公共字符串名称{get;set;}
}
}
名称空间DC.Models
{
公共阶级观
{
公共int Id{get;set;}
公共字符串名称{get;set;}
}
}
在html页面中:

<body>
    @using (Html.BeginForm("SaveRecord", "Comment", FormMethod.Post))
    {
    <p>Id @Html.TextBoxFor(model => model.Id)</p>
    <p>Name @Html.TextBoxFor(model => model.Name)</p>
    <input type="submit" value="Submit" class="btn-block btn-primary" />
    }
</body>

@使用(Html.BeginForm(“SaveRecord”、“Comment”、FormMethod.Post))
{
Id@Html.TextBoxFor(model=>model.Id)

Name@Html.TextBoxFor(model=>model.Name)

}
您创建的视图对象应为测试对象:

namespace DC.Controllers
{
    public class CommentController : Controller
    {
        public ActionResult SaveRecord(View model)
        {
            try
            {
                DataComment db = new DataComment();
                Test view= new Test(); //This is change
                view.Id = model.Id;
                view.Name = model.Name;

                db.Test.Add(view);

                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return RedirectToAction("Index");
        }
    }
}
还有一点是它们在模型名称空间上的不同,请也看看这一点

或者,您也可以使用如下所示:

public ActionResult SaveRecord(Test model)
        {
            try
            {
                DataComment db = new DataComment();

                db.Test.Add(model);

                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return RedirectToAction("Index");
        }