C# 如何在MVC中的控制器中获取DropDownList SelectedValue并将其存储在变量中
我有dropdownlist,我想从视图中获取所选的值,并将其存储在控制器中的变量中,以便重用它 这是我的密码: Index.cshtmlC# 如何在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
@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接口。