Html ASP.NETMVC将数据库字符串传递给复选框值
这与我昨天发布的一个关于复选框的问题密切相关 以下是我的设置:Html ASP.NETMVC将数据库字符串传递给复选框值,html,asp.net-mvc,xhtml,Html,Asp.net Mvc,Xhtml,这与我昨天发布的一个关于复选框的问题密切相关 以下是我的设置: 我有一个数据库目录,其中有一个名称列表和其他字段,作为我的模型 我有一个搜索页面,用户可以在其中搜索此目录并选择一个名称 我有一个表单页面,显示名称,旁边有一个复选框,允许用户决定是否将名称作为值包含在提交的表单中 处理提交表单的控制器 目标: 我想知道的是,如何获得在目录中选择的名称的字符串值,使其既显示在表单页面视图中,又将该字符串包含在复选框的值字段中?您无法更改选中复选框的值;如果选中复选框,则其值始终为“开”,MVC可
- 我有一个数据库目录,其中有一个名称列表和其他字段,作为我的模型
- 我有一个搜索页面,用户可以在其中搜索此目录并选择一个名称
- 我有一个表单页面,显示名称,旁边有一个复选框,允许用户决定是否将名称作为值包含在提交的表单中
- 处理提交表单的控制器
我想知道的是,如何获得在目录中选择的名称的字符串值,使其既显示在表单页面视图中,又将该字符串包含在复选框的值字段中?您无法更改选中复选框的值;如果选中复选框,则其值始终为“开”,MVC可以使用该复选框将已发布的值自动映射为布尔值。但是,如果此名称列表是动态的,并且每个名称都是唯一的,则可以使用动态命名复选框生成表单。然后,在控制器中,您可以检查原始表单以查看检查了哪些名称。例如,在视图中,您的代码可能如下所示:
<form>
<% /* Some loop here */ { %>
<input type="checkbox" name="name_<%= Html.Encode(theName) %>" />
<label><%= Html.Encode(theName) %></label>
<% } %>
</form>
这些与复选框关联的名称是一致的,还是动态生成的?
foreach (string name in listOfAvailableNames)
{
if (Request.Form["name_" + name] == "on")
{
// Handle the name being selected
}
else
{
// Handle the name not being selected
}
}