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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:20:29