首页 > 解决方案 > 如何将数据从 ASP 表单添加到 MongoDB 集合?

问题描述

我正在尝试制作一个要求输入用户名和密码的表单,并在用户单击“提交”时将值添加到 MongoDB 集合中。我已经想出了如何通过调用 Get() 方法 OnGet() 来列出所有用户,但我对将数据发布到数据库感到困惑。

这是我的表格:

                <form method="post">
                    <fieldset>
                        <legend>User Creation</legend>
                        <input type="text" name="input_username" value="Enter a username" />
                        <br />
                        <input type="text" name="input_password" value="Enter a password" />
                        <br />
                        <input type="submit" name="submit" value="Submit" />
                    </fieldset>
                </form>

这是我的 User.cs 模型

using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;

namespace project.Model {
    public class User {
        [BsonId][BsonRepresentation(BsonType.ObjectId)]
        public string Id { get; set; }
        public int UID {get; set;}
        public string Username {get; set;}
        public string Password { get; set; }
    }
}

本质上,我希望在单击提交按钮时将输入字段中的文本添加到用户的数据库中。我是新手,所以任何帮助表示赞赏,如果需要更多信息,请告诉我!

标签: c#asp.netmongodbformspost

解决方案


使用本网站的信息解决了自己

首先,在我的 PageModel 中,我添加了我的用户服务和以下内容

public UsersService DBservice;
public string Username { get; set; }
public string Password { get; set; }
public int UID { get; set; }

然后,OnPostSubmit:

public void OnPostSubmit(User newuser)
{
    this.Username = newuser.Username;
    this.Password = newuser.Password;
    this.UID = newuser.UID;
    DBservice.Create(newuser);

}

DBservice.Create() 看起来像:

    public User Create(User user)
    {
    _users.InsertOne(user);
    return user;
    }

最后,我的表单如下所示:

<form>
    <table>
        <tr>
            <td>Username: </td>
            <td><input type="text" id="txtUserName" name="Username"/></td>
        </tr>
        <tr>
            <td>Password: </td>
            <td><input type="text" id="txtPassword" name="Password" /></td>
        </tr>
        <tr>
            <td>UID: </td>
            <td><input type="text" id="txtUID" name="UID" /></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" value="Submit" asp-page-handler="Submit"/></td>
        </tr>
    </table>
    <hr/>
</form>

虽然我即将用 Bootstrap 改变格式和样式


推荐阅读