从javascript函数获取数据到ASP.NET MVC控制器的操作方法

时间:2017-08-18 14:54:31

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

我已经看了很多关于SO的帖子来弄清楚我的情况,但收效甚微。我尝试将数据从javascript函数(DropdownChange())发送到MVC控制器Action方法作为参数,基于在视图上选择的下拉值。这是我的代码:

在.cshtml中      //下拉代码      ....其次是      //用于创建新计划的代码

 <a href="@Url.Action("ActionMethod")">
           <i class="sth" id="sth" Title="Create"></i>
      </a>

在.JS文件中,获取下拉列表更改值的功能

  function DropdownChange(){
       var Value = parseInt($("#dropDownId").val());
        $.ajax({
           type: "POST",
           url: '@ Url.Action("ActionMethod", "Home")',
           contentType: 'application/json; charset=utf-8',
           dataType: "json",
           data: {data : JSON.Stringify(Value)},
           success: function (data) {
                    alert('success');
                },
           error: error: function (result){
                  alert('error');
                }
           });

这是我的Controller动作方法

     [HttpPost]
     public ActionResult  ActionMethod(string Value)
     {
         // do something with Value     
     }

我得到的是一个错误警告消息和一个JS运行时错误以及Value参数的空值。在这种情况下,任何人都可以帮助我。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

尝试

$.ajax({
           type: "POST",
           url: '@ Url.Action("ActionMethod", "Home")',
           contentType: 'application/json; charset=utf-8',
           dataType: "json",
           data: JSON.stringify({data: Value}),
           success: function (data) {
                    alert('success');
                },
           error: error: function (result){
                  alert('error');
                }
           });   

OR

$.ajax({
           type: "POST",
           url: '@ Url.Action("ActionMethod", "Home")',
           contentType: 'application/json; charset=utf-8',
           dataType: "json",
           data: Value,
           success: function (data) {
                    alert('success');
                },
           error: error: function (result){
                  alert('error');
                }
           });