【问题标题】:How to get selected index changed value in controller mvc c#如何在控制器mvc c#中获取选定的索引更改值
【发布时间】:2016-03-30 09:34:38
【问题描述】:

我在下拉列表中获取值,当用户从下拉列表中选择任何值时,我想在控制器中获取选定的值。我的看法是——

@using (Html.BeginForm("ApReport", "Sales", FormMethod.Post))
{
    @Html.DropDownList("Ddl", null, "All", new { @class = "control-label"})

    @Html.Hidden("rddl")                                 
}

控制器 -

[HttpPost]
public ActionResult ApReport(ApReport Ddl)
{
  string Ddlvalue = string.Empty;
  if (Request.Form["rddl"] != null)
  {
    Ddlvalue = Request.Form["rddl"].ToString();
  }
}

但我没有得到任何价值。另外,我不想使用任何提交按钮。

提前致谢

【问题讨论】:

  • 你不需要隐藏字段,只需将Request.Form["rddl"]改为Request.Form["Ddl"]
  • 不想要提交按钮是什么意思? (您如何将数据发送到控制器)。你的下拉列表名称是name="Ddl",这意味着你的模型将永远是null,因为控制器中的参数也是Ddl
  • @EʜsᴀɴSᴀᴊᴊᴀᴅ,我已经改变了你所说的,但在控制器中没有得到任何价值
  • 您是如何提交表单的?

标签: c# asp.net-mvc-4 razor


【解决方案1】:

使用 Ajax 允许您作为开发人员更新主视图而无需重新加载整个页面,以及在后台向服务器发送数据。

这就是我完成这项任务的方式。

首先,我会在我的控制器中创建一个返回 JsonResult 的操作。这将向您的调用 jquery 代码返回一个 JSON 对象,您可以使用该对象将值返回到您的视图中。这是一个动作方法的例子。

[HttpGet]
public JsonResult YourActionName(string selectedValue) //Assuming key in your dropdown is string
{
    var result = DoYourCalculation(selectedValue);

    return Json(new { myResult = result }, JsonRequestBehavior.AllowGet);
}

现在,您需要添加您的 jquery 代码。我建议您将其放在视图引用的单独 javascript 文件中。

这里是 JQuery 代码,以及对控制器中 Action 的 ajax 调用。对服务器的 Ajax 调用由 DropDown 的“更改”事件启动,在 JQuery 中处理,如下所示。

    $(function () {
        $(document)
            .on('change', '#Ddl', function(){
                var valueofDropDown = $(this).val();
                var url = '/YourControllerName/YourActionName';
                var dataToSend = { selectedValue: valueofDropDown }

                $.ajax({
                    url: url,
                    data: dataToSend,
                    type: 'GET',
                    success: function (dataReceived) {
                        //update control on View
                        var receivedValue = dataReceived.myResult ;
                        $('YourControlIDToUpdate').val(receivedValue);
                }
            })
        });
    };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2014-03-05
    • 2013-11-23
    • 2012-10-19
    相关资源
    最近更新 更多