从Asp.net mvc 4中的视图到Controller获取变量值

时间:2015-01-28 12:11:59

标签: asp.net-mvc

你好我已经创建了一个Small应用程序,我在其中声明了一个下拉列表。它的名字是"国家"所以我使用javascript获取下拉列表的值并将其存储在局部变量中。那么如何在控制器中使用变量?

1 个答案:

答案 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)
{
    ...
}