ASP.NET MVC中GET请求调用控制器方法无法显示视图问题
问题原因与解决方案
你当前的核心问题是:Ajax请求成功获取到了控制器返回的视图HTML,但没有编写代码将这些内容渲染到页面上——Ajax默认只会静默接收响应内容,不会自动更新页面显示。
下面提供两种针对性的解决思路:
方案1:局部加载个人资料(不刷新整个页面)
适合在当前页面内展示用户资料的场景:
- 在触发Ajax的视图中添加一个容器,用于承载个人资料内容:
<!-- 放置在页面需要显示资料的位置,比如表格下方 --> <div id="profileContainer"></div>
- 修改JavaScript的Ajax代码,添加
success回调处理返回的视图内容:
function ViewProfile(id) { console.log("success"); $.ajax({ type:"GET", url: "/ViewUserProfile/Index", data: { "userId": id }, success: function(response) { // 将控制器返回的视图HTML插入到容器中 $("#profileContainer").html(response); } }); };
注意:如果希望返回的只是资料内容而非完整页面,建议将ViewUserProfile/Index对应的视图改为局部视图,或者在控制器中返回局部视图:
// 替换原return View(...)的代码 return PartialView(ProfileInformation);
方案2:直接跳转到完整的个人资料页面
如果需要打开独立的个人资料页面,无需使用Ajax,直接做页面跳转即可:
修改JavaScript函数:
function ViewProfile(id) { console.log("success"); // 跳转到个人资料页面,携带userId参数 window.location.href = "/ViewUserProfile/Index?userId=" + id; }
内容的提问来源于stack exchange,提问作者Lighto Gamer
相关产品推荐
相关产品推荐

