ASP.NET MVC如何从getJson传递多个参数到控制器

4

我正在使用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 = ""
 });
1个回答

2

你肯定走在正确的道路上,不过我需要看一下你的控制器才能确定。它需要看起来像这样:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接