IIS的MVC3 JSON调用问题

时间:2012-07-13 15:28:35

标签: jquery ajax json asp.net-mvc-3 iis

我正在研究MVC3 UserManagement和本地(VS2010)似乎都运行正常但在IIS(7.5)上它只是不会显示任何对JSON帖子的响应。

用户生成器表:

this.init = function (tableSelector) {

// get user table
userTable = $(tableSelector);

// fill the user table with all 
$.post('/{controllerName}/GetAllUsers', {}, function (users) {

  // add users to table
  for (var i in users) {
    appendUser(users[i]);
  }

  //initialize table sorter and pager
  userTable.tablesorter({ widthFixed: true, widgets: ['zebra'] }).tablesorterPager({ container: $("#pager"), positionFixed: false, removeRows: false });

  // bind user action link event handlers for all rows
  userTable.on('click', '.delete-user', deleteUser);
  userTable.on("click", ".unlock-user", unlockUser);
  userTable.on("click", ".manage-roles", manageRoles);
});

}

路由注册方法:

public static void RegisterMe()
{

  var routes = RouteTable.Routes;

  using (routes.GetWriteLock())
  {
    routes.MapRoute("SimpleUserManagementRoute",
      "SimpleUserManagement/{action}",
      new { controller = "UserManagement", action = "GetAllUsers" },
      new string[] { "SimpleMvcUserManagement" });
  }

}

控制器部分:

public IUserAccountService _accountService { get; set; }

public JsonResult GetAllUsers()
{
  var users = _accountService.GetAllUsers();
  var result = from MembershipUser user in users
               select CreateJsonUserObject(user);

  return Json(result);
}

现在,通过查看StackOverflow,我发现问题在于强编码的URL。 参考:MVC 3 JSON call not working in IIS

我尝试用引用中提到的URL替换我的URL,但当然它不起作用,因为我不知道在哪里/如何stringify我的网址:(,也不确定是否该解决方案甚至可以解决这个问题。

请帮忙。 TY!

2 个答案:

答案 0 :(得分:0)

您的IIS是否配置了虚拟目录?如果将/ {controllerName} / GetAllUsers放入浏览器会发生什么?你收到回复还是404?

答案 1 :(得分:0)

您传递给$.post的网址错误。

它应该是,

$.post("/Register/GetAllUsers", ...) //假设控制器是RegisterController

$.post('@Url.Action("GetAllUsers", "Register")',..