有很多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>
答案 0 :(得分:2)
具有cshtml
扩展名的部分视图仍然是Razor视图,即使其中的内容是静态的,服务器仍然需要读取它并将其内容转换为html(即使这意味着复制它)完全按照它的方式发送回去)
你需要的是一个html
文件,你可以使用javascript或jQuery动态加载:
$("#feedback").click(function () {
$("#reportWindow").load('feedback.html');
});
请注意,这仍然会向服务器询问feedback.html,通常这与任何路由都不匹配,然后IIS将通过查找名为feedback.html的静态页面来解析请求!