【问题标题】:ASP.NET MVC Pass mutiple params from getJson to controllerASP.NET MVC 将多个参数从 get Json 传递到控制器
【发布时间】:2009-03-30 19:46:46
【问题描述】:

我正在使用 getJson 方法在 javascript 中调用控制器操作。我需要将两个参数传递给控制器​​上的操作方法,但我正在努力这样做。我不完全了解路由表,并且不确定这是否是我需要使用它才能使其正常工作。请参阅下面的示例,了解我正在尝试做的事情。

var action = "<%=Url.Content('~/Postcode/GetAddressResults/')%>" + $get("Premise").value + "/" + $get("SearchPostcode").value
$.getJSON(action, null, function(data) {
  $("#AddressDropDown").fillSelect(data);
});

这是我的路线,我不明白如何使用......

routes.MapRoute(
 "postcode",
 "Postcode/GetAddressResults/{premise}/{postcode}",
 new {
  controller = "Motor", action = "GetAddressResults",
    premise = "", postcode = ""
 });

【问题讨论】:

    标签: jquery asp.net-mvc json asp.net-mvc-routing


    【解决方案1】:

    您肯定走在正确的道路上,但我需要查看您的控制器才能确定。它需要看起来像这样:

    public ActionResult GetAddressResults(string premise, string postcode)
    {
      //Do something.
      return Json(AddressService.GetResultsOfSomeKind(premise, postcode);
    }
    

    在你的 ActionResult 上设置一个断点,这样你就知道它被调用了。如果不是,请使用 Firefox 并检查错误控制台是否有语法错误(您发布的代码有一些错误)。

    更新:

    什么是

    $get("Premise").value? 
    

    要通过 jQuery 获取输入值,请使用:

    $("#fieldid").val();
    

    我建议使用 Firefox 的 Firebug 插件。这样你就可以确切地知道你的 javascript 是在什么时候被破坏的。您很可能会发现在 $.getJSON 调用向您的控制器发送请求之前,您的“var action =" 语句没有在客户端正确附加表单字段值。

    【讨论】:

      猜你喜欢
      • 2016-08-14
      • 2014-06-29
      • 2015-04-03
      • 1970-01-01
      • 2018-10-07
      • 2010-09-14
      • 2021-12-05
      • 1970-01-01
      • 2019-10-30
      相关资源
      最近更新 更多