你好我已经创建了一个Small应用程序,我在其中声明了一个下拉列表。它的名字是"国家"所以我使用javascript获取下拉列表的值并将其存储在局部变量中。那么如何在控制器中使用变量?
答案 0 :(得分:2)
如果此表单提交到服务器时此下拉列表位于html <form>
内,则可以从下拉列表中检索所选值。
示例:
@using (Html.BeginForm())
{
@Html.DropDownListFor(x => x.SelectedValue, Model.Values)
<button type="submit">OK</button>
}
提交表单后,您可以在相应的控制器操作中检索所选值:
[HttpPost]
public ActionResult Index(string selectedValue)
{
// The selectedValue parameter will contain the value from the
// dropdown list
...
}
或者,如果您希望发送表单中有更多元素,则可以定义视图模型:
public class MyViewModel
{
public string SelectedValue { get; set; }
... some other properties
}
您的控制器操作可以作为参数:
[HttpPost]
public ActionResult Index(MyViewModel model)
{
...
}
如果您的下拉列表不在html表单中,您可以使用AJAX提交下拉列表的选定值。例如:
$.ajax({
url: '@Url.Action("SomeAction")',
type: 'POST',
data: { selectedValue: 'the selected value you retrieve from the dropdown' },
success: function(result) {
alert('successfully sent the selected value to the server');
}
});
您的控制器操作可能如下所示:
[HttpPost]
public ActionResult SomeAction(string selectedValue)
{
...
}