如何从视图中获取“ <select> </select>”的值到控制器的“ ActionResult”中?

时间:2019-01-21 04:02:22

标签: javascript c# jquery asp.net asp.net-mvc

我有一个标签和一个按钮。单击按钮后,将调用控制器中的actionResult。这样。

<button type="button" onclick="location.href='@Url.Action("GetAllItems", "Items")'">Get Items</button>

这是ActionResult

public ActionResult GetAllItems() {
        string selectedItem = string.Empty;
        ItemsRepository itemsRepository = new ItemsRepository();
        ModelState.Clear();
        return View(itemsRepository.GetAllItems());
    }

selectedItem是我要存储selectedText或selectedValue的变量。但是我不知道该怎么做。

这是<Select>标记。

<select style="width:170px" id="ItemsID" name="Items"></select>

这是 rough 函数,用于从onChange事件中获得不同的结果。

<script>
$(document).ready(function () {
    $("#ItemsID").change(function () {
        var a = $('#ItemsID option:selected').val();
        var b = $('#ItemsID option:selected').text().trim();
        var c = $('#ItemsID option:selected').index();

        alert(a);
        alert(b);
        alert(c);
    })
});

请帮助。

2 个答案:

答案 0 :(得分:1)

location.href没有发送POST请求。您要做的是在ActionResult中放置一个表单标签,以发出POST请求。

<form action='yourAction'>
<select name='name'></select>
<button type="submit">Get Items</button>
</form>

答案 1 :(得分:0)

您可以使用以下代码在操作方法中获取选择的值。请注意,您必须将html select元素的name属性传递给Request。

var selectedValue = Request["Items"];

另外,请确保单击的按钮使用下面的代码提交表单。

主要要点是,如果html元素和Submit按钮位于同一表单内,则只能使用C#代码中的Request对象访问html元素值。如果使用重定向用户的按钮而不是提交表单,则此按钮将不起作用,因此它必须是提交类型的按钮,如下面的代码所示。

@using (Html.BeginForm("YourActionName", "ControllerName")) {

          <select style="width:170px" id="ItemsID" name="Items"></select>

          <input type="submit" value="Submit Data" id="btnSubmit" />

}