C# 创建用户ID列表的最佳实践

C# 创建用户ID列表的最佳实践,c#,asp.net,html,sql,razor,C#,Asp.net,Html,Sql,Razor,我的数据库结构如下: UserID (Primary Key) Username FirstName SecondName Email <script type="text/javascript"> $(function(){ $('#username').autocomplete({source:'getProducts'}); }); </script> @{ if (IsPost

我的数据库结构如下:

UserID (Primary Key)
Username
FirstName
SecondName
Email
<script type="text/javascript">
        $(function(){
            $('#username').autocomplete({source:'getProducts'});
        });
</script>
@{      
         if (IsPost) {
                var db = Database.Open("mPlan");
                var term = Request.Form["username"];
                var sql = "SELECT * from Users where Username = @0 OR FirstName = @0 OR SecondName = @0"; //this is not very good
                var result = db.Query(sql, term);


                HttpCookie cookie = Request.Cookies.Get("MPUsersToMeet");
                if(cookie == null) {
                   //assuming I need to create a new cookie
                        cookie = new HttpCookie("MPUsersToMeet");
                } else {
                    //cookie.Add();?
                }
        }
 }
            <form id="form" name="form" method="post" action="">
            <h1>Organize your meeting!</h1>
            <p>Please give us the details of your meeting.</p>
            <label>Who do you want to add to your meeting?
            <span class="small">Add your first name, separate by commas.</span>
            </label>
             <label for="username">Enter name : </label>
            <input type="text" name="username" id="username" />

            <button type="submit">Add</button>
            <div class="spacer"></div>            
            </form>
我计划允许用户查询这个数据库并添加其他用户,这样就可以运行一个算法来选择所有这些用户的空闲时间并返回可用于会议的时间

因此,首先,我需要建立一个用户列表。这样做的最佳实践是什么?我假设每次找到用户时我都会创建一个cookie,并将其添加到客户端会话中?我该怎么做

我的代码如下:

UserID (Primary Key)
Username
FirstName
SecondName
Email
<script type="text/javascript">
        $(function(){
            $('#username').autocomplete({source:'getProducts'});
        });
</script>
@{      
         if (IsPost) {
                var db = Database.Open("mPlan");
                var term = Request.Form["username"];
                var sql = "SELECT * from Users where Username = @0 OR FirstName = @0 OR SecondName = @0"; //this is not very good
                var result = db.Query(sql, term);


                HttpCookie cookie = Request.Cookies.Get("MPUsersToMeet");
                if(cookie == null) {
                   //assuming I need to create a new cookie
                        cookie = new HttpCookie("MPUsersToMeet");
                } else {
                    //cookie.Add();?
                }
        }
 }
            <form id="form" name="form" method="post" action="">
            <h1>Organize your meeting!</h1>
            <p>Please give us the details of your meeting.</p>
            <label>Who do you want to add to your meeting?
            <span class="small">Add your first name, separate by commas.</span>
            </label>
             <label for="username">Enter name : </label>
            <input type="text" name="username" id="username" />

            <button type="submit">Add</button>
            <div class="spacer"></div>            
            </form>

这里的最佳做法是什么?我需要查询数据库并在客户端存储一个用户列表,然后在屏幕上显示这些用户的详细信息。

您必须决定是在服务器端还是客户端生成用户ID列表

如果是内置的服务器端,则必须将每个用户id发布到服务器。对于此解决方案,必须为每个添加的用户重新加载页面。我可以通过使用带有隐藏用户ID列表的html表单标记来解决这个问题


如果您采用客户端方法并使用javascript实现这一点,则可以构建一个用户ID列表,并且在添加所有用户后,可以将其发布到服务器。在Javascript中,您可以使用数组存储多个用户,因此不需要使用cookie。选择所有用户后,可以通过AJAX请求或普通POST将阵列发送到服务器

首先,我将从UI中删除此代码并将其放置在适当的位置layer@MilkyWayJoe,我已经这样做了;我的代码只是显示代码片段,这样事情就不会被简单的标记弄糊涂了!:你为什么认为你需要饼干?Cookie通常用于跟踪已登录的用户,而不是表示用户列表。@themarcuz,感谢您的回复。这只是一个想法,我很困惑客户端如何跟踪到目前为止添加的用户列表,cookies是我唯一能想到的方法!您是要收集并发用户列表,还是要收集访问过您的应用程序的所有用户的主列表?如何在客户端执行此操作?我想维护一个所有用户的列表,每次客户端按Add时,他们的详细信息都会添加到存储在客户端的列表中。我很不确定该怎么做。在html添加按钮上添加onclick处理程序。保留用户id列表,当单击处理程序触发时,将新用户id添加到列表中。谷歌javascript onclick。谢谢。如果我尝试在服务器端执行此操作,我将如何执行此操作?我意识到,每当用户在文本框中输入内容时,我都需要查询数据库,但是,到目前为止,我如何保存他们列表的内容?对于每个添加的用户,需要重新加载和呈现页面。输入的用户名应发布到服务器和查询的数据库,如果正确,则应将其作为隐藏字段添加到表单标记中。但您还必须确保所有以前添加的用户都保留在forms标记中。