0

我在 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 调用在 IIS 中不起作用

我已经尝试用参考中提到的 URL 替换我的 URL,但它当然没有用,因为我不知道stringify我的 url 的位置/方式 :( ,也不确定该解决方案是否适用于此。

请帮忙。泰!

4

2 回答 2

0

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

于 2012-07-13T15:31:29.077 回答
0

您传递给的 URL$.post是错误的。

应该是,

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

或者

$.post('@Url.Action("GetAllUsers", "Register")',.. 
于 2012-07-13T16:52:33.173 回答