我正在研究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!
答案 0 :(得分:0)
您的IIS是否配置了虚拟目录?如果将/ {controllerName} / GetAllUsers放入浏览器会发生什么?你收到回复还是404?
答案 1 :(得分:0)
您传递给$.post
的网址错误。
它应该是,
$.post("/Register/GetAllUsers", ...)
//假设控制器是RegisterController
或
$.post('@Url.Action("GetAllUsers", "Register")',..