Post类没有将表单数据提交给实体数据库

问题描述 投票:0回答:1

这可能是一个重复的问题,但我见过的其他问题没有能够帮助我。我对asp.net的了解非常有限。

下面的代码是创建数据库的Post类。

public class Post
    {
        //The post ID
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int postId { get; set; }
        // Foreign key to customer
        [ForeignKey("ApplicationUser")]
        public string Id { get; set; }
        public virtual ApplicationUser ApplicationUser { get; set; }
        public string postTitle { get; set; }
        public string postBody { get; set; }
        public string postDescription { get; set; }
        public string postCategory { get; set; }
        public bool postAnonymous { get; set; }
        public string postLikes { get; set; }
        public string postDislikes { get; set; }

        private ApplicationDbContext _dbContext;

        public Post()
        {
            this._dbContext = new ApplicationDbContext();
        }

        public void AddToDatabase()
        {
            _dbContext.Posts.Add(this);
            _dbContext.SaveChanges();

        }



    }

下面的代码是我试图提交的表单的前端输入

    <div class="jumbotron">
    <p><form id="submitForm" class="form-horizontal">


    <legend class="text-center">Submit a post</legend>

    <div class="form-group">
        <!-- Trigger the modal with a button -->
<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
  <div class="modal-dialog modal-lg">

    <!-- Modal content-->
    <div class="modal-content bigModal">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Insert post information below</h4>
      </div>

      <div class="modal-body">

          <%-- Title--%>
      <label for="inputTitle" class="col-lg-2 control-label">Title:</label>
      <div class="col-lg-10">
          <asp:TextBox  class="form-control" ID="inputTitle" runat="server" placeholder="Title"></asp:TextBox>
      </div>
      <br/><br/>
           <%-- Body--%>
      <label for="inputBody" class="col-lg-2 control-label">Body:</label>
      <div class="col-lg-10">
          <asp:TextBox  class="form-control" ID="inputBody" runat="server" placeholder="Body"></asp:TextBox>
      </div>
      <br/><br/>
           <%-- Description--%>
      <label for="inputDescription" class="col-lg-2 control-label">Description:</label>
      <div class="col-lg-10">
          <asp:TextBox  class="form-control" ID="inputDescription" runat="server" placeholder="Description" TextMode="MultiLine"></asp:TextBox>
      </div>
          <br/><br/>
           <%-- Category--%>
      <label for="inputCategory" class="col-lg-2 control-label">Category:</label>
          <asp:ListBox class="form-control" runat="server" id="inputCategory" SelectionMode="Multiple" >
  <asp:ListItem Value="test1" Text="test1"></asp:ListItem>
  <asp:ListItem Value="test2" Text="test2"></asp:ListItem>
  <asp:ListItem Value="test3" Text="test3"></asp:ListItem>
</asp:ListBox>
          <%--Anonymous--%>
      <label for="inputAnonymous" class="col-lg-2 control-label">Would you like this post to be done anonymously?:</label>
          <asp:RadioButtonList ID="inputAnonymous" runat="server">
        <asp:ListItem Value="Yes" Text="Yes">Yes</asp:ListItem>
        <asp:ListItem Value="No" Text="No">No</asp:ListItem>
    </asp:RadioButtonList>
          <button type="submit" class="btn btn-primary">Submit</button>


      </div>
      <br/><br/><br/><br/><br/>


      </div>

    <div class="form-group">
      <div class="col-lg-10 col-lg-offset-2">
        <button type="reset" class="btn btn-default">Cancel</button>
        <button id="formSubmit" OnClick="formSubmit_Click" name="formSubmit" type="submit" class="btn btn-primary">Submit</button>
      </div>
    </div>
              </div>


      </div>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal" style="width: 127px">Submit a post</button>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>
    </div>

  </div>

最后,下面的代码是C#后端,它应该将信息提交给数据库。

 public void AddPost()
        {



            Post newPost = new Post()
            {
                postTitle = inputTitle.Text,
                postBody = inputBody.Text,
                postDescription = inputDescription.Text,
                postCategory = inputCategory.SelectedValue,
               postAnonymous = Convert.ToBoolean(Int32.Parse(inputAnonymous.SelectedValue)),
            };
        }

我不确定为什么这不起作用。有没有明显的错误?

c# asp.net visual-studio
1个回答
0
投票

你需要在qazxsw poi方法结束时调用qazxsw poi

SaveChanges()
© www.soinside.com 2019 - 2024. All rights reserved.