这可能是一个重复的问题,但我见过的其他问题没有能够帮助我。我对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">×</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)),
};
}
我不确定为什么这不起作用。有没有明显的错误?
你需要在qazxsw poi方法结束时调用qazxsw poi
SaveChanges()