我有一个Web应用程序,每个页面上都有相同的横幅,带有链接等。我想知道的是,当点击其中一个链接时,我应该如下使用javascript / jquery来呈现部分视图内容到div ...或只是做一个常规的Html.ActionLink目标页面包含横幅?
页面结构
<div id ="banner">
// banner content
</div>
<div id="mainContentDiv">
// changing content
</div>
因此,当我在横幅中选择横幅不变的链接时,我应该调用一些jquery函数来更改内容......
$('#mainContentDiv').load('/ControllerName/ActionName?args...');
...会调用一些控制器操作并返回主内容div中的局部视图。这是好习惯吗?这意味着我只加载所需的内容而不必重新加载我的横幅。我已经玩过尝试使用json返回部分视图,但它似乎过于复杂,我正在做什么。所以我的问题是......这是执行此操作的正确方法,还是有任何不利之处?
就在我拥有Html.ActionLink的所有内容时,所以它可能更像一个问题,是否值得重构保持静态内容不需要刷新...这将意味着用户看不到每个链接都采用它们(因为它将全部是javascript onclick事件,我将不得不更改我的所有操作方法以返回部分视图(以及从我当前的视图中删除横幅并使其成为部分视图... )
答案 0 :(得分:1)
如果可以,为什么不do both?我将尝试概述一种可能的方法:
首先,您有链接<a data-target="#main" href="/users/1/show">Show me user 1!</a>
。所以在这一点上,我们有一个适用于所有人的普通链接 - 人类和搜索引擎。
现在把它搞砸了。
$("a").click(function() {
var target = $.data(this, "target");
$(target).load("_" + this.href);
return false;
});
按惯例,我用下划线命名我的部分。这是一个非常基本的演示,你可以做其他花哨的东西,但这是一般的想法。
答案 1 :(得分:-2)
何时加载部分视图?
在进行像ajax.actionlink
这样的ajax调用时