如何在javascript中存储一个值并在服务器端使用它

时间:2013-06-12 22:40:22

标签: c# javascript asp.net-mvc-3 razor

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

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

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

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

2 个答案:

答案 0 :(得分: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;
        })

如下面的Ajax化所述,将选定的下拉值发送给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();
}

答案 1 :(得分:0)

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