【问题标题】:Controller action method call have the parameter as NULL while calling javascript in MVC3在 MVC3 中调用 javascript 时,控制器操作方法调用的参数为 NULL
【发布时间】:2012-11-07 13:21:11
【问题描述】:

我使用 MVC3。 我有`

function userLocation_change()
 {
    var text = $("#userLocation").val();
    alert(text);
    var url = '@Url.Action("GetAllLocations", "Home")';
    var data = text;
    $.post(url, data, function (result) {


        });
}

`

这是我的控制器操作:

public JsonResult GetAllLocations(string userlocation)
    {
        ///...some code...
        return Json(..Something.., JsonRequestBehavior.AllowGet);
    }

问题是每当调用控制器函数时,"userlocation" 参数确实具有 NULL 值。我希望将 data 值传递给控制器​​操作。 有人可以告诉我为什么会这样吗?任何更新将不胜感激。 谢谢。

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:

    您需要专门通过Url.Action 的重载方法将参数传递给@Url.Action。您可以使用 RouteValueDictionary 内联构造函数来实例化。


    编辑:现在意识到您需要在运行时填充该链接,但Url.Action 方法会在渲染时生成链接。我建议将其添加到查询字符串中,然后从控制器方法中的查询字符串中读取它。我怀疑有一种更优雅的方式..但我知道这是可行的。

    类似:var url = '@Url.Action("GetAllLocations", "Home")?userlocation=' + $("#userLocation").val();

    【讨论】:

      【解决方案2】:

      将你的 jQuery post 函数调用修改为:

      $.post(  
          url,  
          { userlocation: text },  
          function(result){
             ....
      }); 
      

      这是因为,您必须使用 JavaScript 文字向控制器的操作方法发送数据。您可以在此处查看使用 JavaScript 调用 Controller 操作的不同方法的完整列表:http://www.asp.net/ajaxlibrary/jquery_posting_to.ashx

      【讨论】:

        【解决方案3】:

        您的操作有一个名为userlocation 的字符串输入参数,因此在将数据发送到操作时,您应该指定这一点,就像在下面的代码中所做的那样。

        这里我用的是data: { userlocation: text},

        function userLocation_change()
         {
            var text = $("#userLocation").val();
            var url = '@Url.Action("GetAllLocations", "Home")';
        
            $.ajax({
            url: url,
            type: 'POST',
            data: { userlocation: text},     
            success: function (result) {
        
            }
            });
        }
        

        希望这能解决您的 null 问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-06-26
          • 1970-01-01
          • 1970-01-01
          • 2012-01-02
          • 2014-07-27
          • 2013-10-05
          • 1970-01-01
          相关资源
          最近更新 更多