ASP.NET MVC将多个参数从getJson传递给控制器

时间:2009-03-30 19:46:46

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

我正在使用getJson方法调用javascript中的控制器操作。我需要将两个参数传递给控制器​​上的action方法,但我很难这样做。我不完全理解路由表,也不确定这是否是我需要使用它来实现这一点。请参阅下面的示例,了解我要做的事情。

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 = "" });

1 个答案:

答案 0 :(得分:0)

你肯定是在正确的道路上,虽然我需要看到你的控制器肯定知道。它需要看起来像这样:

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 =”语句没有在客户端正确附加表单字段值。