You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.Net MVC视图中Ajax调用控制器无响应问题排查

问题排查与解决方案

核心问题分析

控制台打印success但控制器GetWifis方法未执行,大概率是请求路径错误或服务器端异常未被捕获导致的——AJAX的success回调仅表示请求收到了服务器响应,但不代表业务逻辑执行成功。

分步排查与修复

1. 修正AJAX请求的URL

从控制器返回的视图路径~/Views/Home/RobotSsh.cshtml判断,你的控制器应该是HomeController,但AJAX中Url.Action指定的控制器是RobotSsh,这会导致请求路径错误(返回404)。修正后的AJAX代码:

@section Scripts
{
    <script>
        $(document).ready(function () {
            $.ajax({
                 url: '@Url.Action("GetWifis", "Home")',
                 type: 'POST',
                 success: function (response) {
                     console.clear();
                     console.log("success", response);
                 },
                 error: function(xhr, status, error) {
                     console.error("请求失败:", status, error);
                     console.error("服务器响应:", xhr.responseText);
                 }
            });
        });
    </script>   
}
  • 新增error回调:用于捕获请求错误(如404、500),方便定位问题。

2. 排查控制器方法执行异常

在控制器方法中添加异常捕获,确认是否是异步操作GetAllWifiSsids()抛出了未处理的异常:

[HttpPost]
public async Task<IActionResult> GetWifis(RobotSshModel model)
{
    try
    {
        await model.GetAllWifiSsids();
        model.RobotPassword = "test";
        // 可添加日志输出,确认方法执行到此处
        return View("~/Views/Home/RobotSsh.cshtml", model);
    }
    catch(Exception ex)
    {
        // 返回错误信息给前端
        return StatusCode(500, $"执行出错: {ex.Message}");
    }
}

3. 优化AJAX请求的返回逻辑

当前控制器返回完整视图,但AJAX请求不会自动刷新页面,这种设计不合理。建议改为返回分部视图或JSON数据:

  • 返回分部视图示例:
[HttpPost]
public async Task<IActionResult> GetWifis(RobotSshModel model)
{
    await model.GetAllWifiSsids();
    model.RobotPassword = "test";
    return PartialView("~/Views/Home/RobotSshPartial.cshtml", model);
}
  • 在AJAX的success回调中更新页面内容:
success: function (response) {
    console.clear();
    console.log("success");
    // 将返回的分部视图HTML插入到页面指定容器
    $("#wifi-content").html(response);
},

验证步骤

  1. 打开浏览器开发者工具(F12),切换到Network标签;
  2. 刷新页面,查看AJAX请求的状态码:
    • 若为200:查看响应内容,确认控制器是否返回了预期结果;
    • 若为404:检查控制器名称是否正确;
    • 若为500:查看error回调打印的错误信息,定位服务器端异常。

内容的提问来源于stack exchange,提问作者user23280934

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 23:47:43