MVC视图中点击按钮读取控制器缓存键值的实现方法
实现步骤
1. 调整控制器方法
原GetKey方法直接返回视图,不适合前端异步调用,建议新增一个返回JSON的方法(保留原方法的视图功能):
// 新增用于异步获取缓存键的方法 public JsonResult GetCacheKeys() { var cacheKeys = CacheManager.Instance.GetAllKeys(""); return Json(cacheKeys, JsonRequestBehavior.AllowGet); }
如果不需要原GetKey的视图返回逻辑,也可以直接将其修改为返回JsonResult。
2. 编写视图代码
在对应视图(如GetKey.cshtml)中添加按钮和显示容器,用JavaScript实现点击触发请求并展示结果:
<!-- 触发按钮 --> <button id="loadKeysBtn">加载缓存键</button> <!-- 用于显示结果的文本区域(多行显示更友好) --> <textarea id="keysDisplayArea" rows="12" cols="80" readonly></textarea> <!-- 引入jQuery,确保项目中已有对应文件 --> <script src="~/Scripts/jquery-3.6.0.min.js"></script> <script> $(function() { $("#loadKeysBtn").click(function() { $.ajax({ url: "@Url.Action("GetCacheKeys")", type: "GET", success: function(keys) { // 将缓存键数组拼接为每行一个的字符串 var keysStr = keys.join("\n"); // 填充到文本区域 $("#keysDisplayArea").val(keysStr); }, error: function() { alert("加载缓存键失败"); } }); }); }); </script>
如果想用文本框显示,把<textarea>替换为<input type="text" id="keysInput" readonly>,并将success回调里的代码改为$("#keysInput").val(keysStr);(但缓存键较多时,文本区域体验更好)。
内容的提问来源于stack exchange,提问作者seventhball
相关产品推荐
相关产品推荐

