0

我正在尝试使用将下拉选择的值存储在 javascript 函数内的局部变量中,一旦下拉更改,当我单击锚标记进行控制器调用时,我可以检索该值。

我目前正在尝试使用 Jquery 下拉更改功能来存储该下拉值(但不知道如何)。

我不能在 javascript 中使用 viewbag。我尝试了隐藏值,但不确定这是否是正确的方法,因为我没有提交表单。

无论如何在服务器端存储和检索该变量值?

4

2 回答 2

2

HTML

<select id="DropDown" name="routetype">
    <option value="first">First</option>
    <option selected="selected" value="second">Second</option>
    <option value="third">Third</option>
</select>

<a id="anchor" href="#" />

jQuery

<script type="text/javascript">
    var selected;
    $(document).ready(function () {
        selected = $("#DropDown option:selected").attr('value');

        $('#DropDown').change(function () {  //Preserve the selected value here.
            selected = $("#DropDown option:selected").attr('value');
            return false;
        })

如下面的 Ajaxifying 所述,将选定的下拉值发送到 Controller。

单击链接时的 Ajax 请求

        $('#anchor').click(function(){
            $.ajax({
                url: '@Url.Action("ActionName", "Controller Name")',
                type: 'POST',
                contentType: 'application/json',
                data: JSON.stringify({ Param: selected }),   //Dropdown value
                dataType: 'json'
            }).done(function () {                             //Success Callback
        });
    });
</script>

动作方法

[HttpPost]
public ActionResult Index(string Param)
{
    return View();
}
于 2013-06-12T23:28:23.437 回答
0

您可以提出POSTGET要求。
这是一个详细说明差异的链接。
您可能希望使用 ajax 在不刷新页面的情况下进行这些调用,在这种情况下jquery很方便。

于 2013-06-12T22:43:39.367 回答