Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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# 如何在MVC中的控制器中获取DropDownList SelectedValue并将其存储在变量中_C#_Html_Asp.net_Asp.net Mvc_Visual Studio - Fatal编程技术网

C# 如何在MVC中的控制器中获取DropDownList SelectedValue并将其存储在变量中

C# 如何在MVC中的控制器中获取DropDownList SelectedValue并将其存储在变量中,c#,html,asp.net,asp.net-mvc,visual-studio,C#,Html,Asp.net,Asp.net Mvc,Visual Studio,我有dropdownlist,我想从视图中获取所选的值,并将其存储在控制器中的变量中,以便重用它 这是我的密码: Index.cshtml @using (Html.BeginForm("Register", "Home", FormMethod.Post)) { <table style="text-align: left; width: 900px; height: 160px;" border="0" cellpadding="2" cellspac

我有dropdownlist,我想从视图中获取所选的值,并将其存储在控制器中的变量中,以便重用它

这是我的密码:

Index.cshtml

@using (Html.BeginForm("Register", "Home", FormMethod.Post))
{            

    <table style="text-align: left; width: 900px; height: 160px;" border="0" cellpadding="2" cellspacing="2">
        <tbody>
             <tr>
                <td style="width: 559px;">
                   <select id="select1" name="select1">
                        <option value="1">1 BAL Active</option>
                        <option value="2">2 BAL Actives</option>
                        <option value="3">3 BAL Actives</option>
                        <option value="4">4 BAL Actives</option>
                        <option value="5">5 BAL Actives</option>
                        <option value="6">6 BAL Actives</option>
                    </select>
                </td>
            </tr>

        </tbody>
    </table>
<button type="submit" class="btn btn-default">Register </button>
}
控制器中有一个错误:
菲利普是对的。应使用默认数据绑定器将值填充到ViewModel中。尽管如此,在
ApiController
中读取POST数据的一种更快但不推荐的方法是:-

HttpContext.Current.Request.FormRequest.Form[“select1”]


有关该用法的更多信息,请访问。

Philip是对的。应使用默认数据绑定器将值填充到ViewModel中。尽管如此,在
ApiController
中读取POST数据的一种更快但不推荐的方法是:-

HttpContext.Current.Request.FormRequest.Form[“select1”]


有关用法的更多信息,请访问。

您应该使用
@Html.DropDownListFor
for
选择1

这会将其绑定到ViewModel中的属性

比如说,

@Html.DropDownListFor(m => m.select1, m.SelectListOptions)
ViewModel将可用于控制器方法


为了填充下拉列表的选项,您需要创建一个
SelectList
,并用
SelectList项目填充它

您应该使用
@Html.DropDownListFor
进行
选择1

这会将其绑定到ViewModel中的属性

比如说,

@Html.DropDownListFor(m => m.select1, m.SelectListOptions)
ViewModel将可用于控制器方法


为了填充下拉列表的选项,您需要创建一个
SelectList
,并用
SelectList项目填充它

谢谢,我应该在哪里创建SelectList并用SelectListItems填充它?@ysfibm您可以在控制器中创建它并在ViewModel上设置它,也可以在线创建它。前者更好。谢谢,我应该在哪里创建SelectList并用SelectListItems填充它?@ysfibm您可以在控制器中创建它并在ViewModel上设置它,也可以在线创建它。前者更好,我试过:var selectedOption=HttpContext.Current.Request.FormRequest.Form[“select1”];我有一个错误:名称HttpContext在当前上下文中不存在。在这种情况下,您将丢失使用System.Web导入的
。我尝试了以下操作:var selectedOption=HttpContext.current.Request.FormRequest.Form[“select1”];我有一个错误:名称HttpContext在当前上下文中不存在。在这种情况下,您将丢失使用System.Web导入的
。尽管此问题已关闭,并且访问者将被重定向到适当的答案,我认为需要注意的是,这里的原始问题源于ApicController和常规MVC控制器类角色之间的混淆。您似乎使用的是WebAPI ApiController类,而不是MVC控制器类。如果您使用后者(控制器),您的代码就可以了。我测试过了。因为您希望通过网页上的交互表单从访问者那里获得一个值,所以请坚持使用MVC控制器。ApiController用于编写REST-ful接口。虽然这个问题已经结束,并且访问者正在被重定向到一个合适的答案,但我认为需要注意的是,这里的原始问题源于ApiController角色和常规MVC控制器类之间的混淆。您似乎使用的是WebAPI ApiController类,而不是MVC控制器类。如果您使用后者(控制器),您的代码就可以了。我测试过了。因为您希望通过网页上的交互表单从访问者那里获得一个值,所以请坚持使用MVC控制器。ApicController用于编写REST-ful接口。