【问题标题】:ASP MVC Controller Method not always called from $.getJSON requestASP MVC 控制器方法并不总是从 $.getJSON 请求中调用
【发布时间】:2026-02-06 09:20:16
【问题描述】:

我有一个控制器方法,它返回一个 JSON 对象,在一种调用情况下,它可以工作,而在另一种调用情况下,它不起作用。当我的浏览器中的 URL 是这样的:

http://localhost:65247/Client -- 有效。

但是,当我的网址看起来像这样时:

http://localhost:65247/Client/UserAdmin?id=6 -- 它不起作用

简而言之,客户有用户。在客户端中,我希望处理特定用户(这是 UserAdmin 视图)。在这种情况下,客户端 ID 为 6。然后,我希望从使用 Id=6 启动的 UserAdmin 视图中从下拉列表中选择一个用户。这个想法是使用 javascript 和 $.getJSON 为特定用户获取数据,这样就不必刷新整个页面。我在应用程序的其他部分使用这种方法。我能看到的唯一区别是浏览器中的 URL。它会出现通过“?”参数的存在。有点搞砸了。

有什么想法吗??

提前致谢。

约翰

【问题讨论】:

    标签: asp.net asp.net-mvc json parameters


    【解决方案1】:

    这可能是路由问题。您的 url 需要匹配工作路线(否则框架不知道要执行什么操作)。如果您只有默认路由,您的 url 应该是:http://localhost:65247/Client/UserAdmin/6

    我的建议是使用内置帮助程序来生成您的网址。然后,如果您更改路线,则无需更改任何内容。您可以像这样使用 url 助手:

    <%=Url.Action("ActionName", "ControllerName")%>
    

    【讨论】:

    • 宾果游戏……就是这样。 json 调用只有 Admin/GetUser。正确的调用是 /Admin/GetUser。当调用在 Admin 控制器的上下文中时,第一个 / 不是必需的。然而,在这种情况下,它变得有必要。幸运的是,在 Admin 上下文中始终保持 / 也可以。谢谢!!约翰
    最近更新 更多