Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#从动态创建的HTML表单接收数据_C#_Asp.net_Forms - Fatal编程技术网

C#从动态创建的HTML表单接收数据

C#从动态创建的HTML表单接收数据,c#,asp.net,forms,C#,Asp.net,Forms,我正在创建一个ASP.Net应用程序,该应用程序显示SQLite数据库中的记录,并合并从传入的记录生成的过滤器选项,因为我不知道列中将包含什么类型的数据。我已经准备好了过滤器,并将创建HTML表单,该表单将显示字段值以及具有该值的记录的数量。但是,我不确定如何获取该数据,因为据我所知,控制器中的接收方法希望每个变量都有一个匹配的参数(HTML form:value=“bob”,控制器中的接收方法使用一个参数,例如字符串bob)。 我生成HTML表单的代码是: <div> <

我正在创建一个ASP.Net应用程序,该应用程序显示SQLite数据库中的记录,并合并从传入的记录生成的过滤器选项,因为我不知道列中将包含什么类型的数据。我已经准备好了过滤器,并将创建HTML表单,该表单将显示字段值以及具有该值的记录的数量。但是,我不确定如何获取该数据,因为据我所知,控制器中的接收方法希望每个变量都有一个匹配的参数(HTML form:value=“bob”,控制器中的接收方法使用一个参数,例如字符串bob)。 我生成HTML表单的代码是:

<div>
   <text>Employment:</text> <br />
      @foreach (var employment in Model.Employment)
      {
         <input type="checkbox" value="{@employment.Key}"/>@employment.Key <text>(@employment.Value)</text> <br />
      }
   <hr />
</div>
这对于实现来说可能不是必需的,但对于我构建这个应用程序来说是有意义的。这是一个类,包含我用于构建筛选器选项的所有员工和词典的列表:

   public class TeamMembersModel
    {
        public Dictionary<string, int> Employment { get; set; }
        public Dictionary<string, int> Position { get; set; }
        public Dictionary<string, int> Shift { get; set; }
        public Dictionary<string, int> Department { get; set; }
        public Dictionary<string, int> Manager { get; set; }
        public List<MemberModel> Employees { get; set; }
    }
公共类团队成员模型
{
公共字典{get;set;}
公共字典位置{get;set;}
公共字典移位{get;set;}
公共词典部门{get;set;}
公共字典管理器{get;set;}
公共列表雇员{get;set;}
}
这段代码是我如何构建用于筛选的表单的浓缩版本:

<form asp-action="" asp-controller="TeamMembers" method="get">

   <!-- Department -->
   <div>
      <text>Department:</text> <br />
      @foreach (var departments in Model.Department)
      {
      <input type="checkbox" value="@departments.Key" />@departments.Key <text>(@departments.Value)</text> <br />
      }
      <hr />
   </div>

<!-- This is repeated for each dictionary in the TeamMembersModel class -->

   <button type="submit" value="Filter">Filter</button>
</form>

部门:
@foreach(Model.Department中的var部门) { @departments.Key(@departments.Value)
}
滤器
您基本上希望将类或列表绑定到视图。。。。这样,您的控制器可以在您提交时解析它。当你说“不知道列中会有什么样的数据”时。。。那很好。。。只要你知道这些列是什么。这些将是您绑定的类中的属性。发布更多代码会更好。@pcalkins感谢您的回复。我添加了存储员工信息的类、存储要显示的所有员工的类、用于显示筛选选项的不同词典,以及用于构建表单的HTML。我建议在控制器中创建复选框:看起来您根本不需要词典。。。绑定/填充控制器中的列表,视图将拥有它。过滤器逻辑将在post上完成。。。要查看的返回列表。抱歉,我发现您的描述有点不清楚。正在询问如何从HTML数据中解析数据?如果是这样,最简单的方法就是使用HTML解析库,例如。这样的库将把那些
标记转换成可以轻松遍历的节点。
   public class TeamMembersModel
    {
        public Dictionary<string, int> Employment { get; set; }
        public Dictionary<string, int> Position { get; set; }
        public Dictionary<string, int> Shift { get; set; }
        public Dictionary<string, int> Department { get; set; }
        public Dictionary<string, int> Manager { get; set; }
        public List<MemberModel> Employees { get; set; }
    }
<form asp-action="" asp-controller="TeamMembers" method="get">

   <!-- Department -->
   <div>
      <text>Department:</text> <br />
      @foreach (var departments in Model.Department)
      {
      <input type="checkbox" value="@departments.Key" />@departments.Key <text>(@departments.Value)</text> <br />
      }
      <hr />
   </div>

<!-- This is repeated for each dictionary in the TeamMembersModel class -->

   <button type="submit" value="Filter">Filter</button>
</form>