0

有一大块 html + js 代码。目标是仅在特定按钮单击时加载并显示它,因此无需每次都预加载它。

通常,我们可以使用 jquery/ajax 动态包含部分视图,但据我所知,它需要一个控制器。在这种情况下,不需要控制器,因为数据是静态的。

所以,问题是:是否有可能在特定事件(如按钮单击)上包含部分视图而无需通过控制器?

我们尝试的是为 ajax 请求提供部分视图的地址。然而它并没有帮助。

<div class="reportWindow"></div>

<script type="text/javascript">
    $("#feedback").click(function () {

        $.ajax({
            url: "@Url.Content("_Feedback")",
            type: 'GET',
            cache: false,
            success: function (result) {
                $("#reportWindow").html(result);
            }
        });
    });    
</script>
4

1 回答 1

2

具有cshtml扩展名的 Partial 视图仍然是 Razor 视图,即使其中的内容是静态的,服务器仍然需要读取它并将其内容转换为 html(即使这意味着完全按原样复制并发送它)背部)

您需要的是一个html文件,然后您可以使用 javascript 或 jQuery 动态加载该文件:

$("#feedback").click(function () {
    $("#reportWindow").load('feedback.html'); 
});

请注意,这仍然会要求服务器提供 feedback.html,通常这不会与任何路由匹配,然后 IIS 将通过查找名为 feedback.html 的静态页面来解决请求!

于 2013-01-22T16:52:55.793 回答