我正在使用ASP.NET MVC4创建一个使用PartialViews和jQuery加载内容的网站。我的主页看起来像这样:
<ul>
<li id="recent">Recent</li>
<li id="home">Home</li>
<li id="books">Books</li>
</ul>
<div id="content"></div>
jQuery看起来像:
$("#recent").on("click", function () {
$("#content").load("/Recent/Load");
});
$("#home").on("click", function () {
$("#content").load("/Home/Load");
});
$("#Books").on("click", function () {
$("#books").load("/Books/Load");
});
Here's a jsFiddle, not working because no MVC obviously.
<li>
充当链接,将PartialViews从各自的控制器加载到<div id="content">
。
我希望在过去24小时内添加新图书时,“最近”<li>
会显示为红色。控制器中存在确定是否已添加新书籍的逻辑。
我的一个解决方案是将“Recent”<li>
作为单独的PartialView并执行以下操作:
RecentBooks.cshtml:
<li id="recent" style="background-color: red;">Recent</li>
NoRecentBooks.cshtml:
<li id="recent">Recent</li>
然后,在每个链接上单击,使用jQuery调用Controller,返回这两个PartialViews之一。
这似乎是在一行代码上更新一个属性的一种非常麻烦的方法。它会起作用,是的,但还有另一种我不知道的方法吗?其中一个不涉及PartialViews?
答案 0 :(得分:0)
是的,它是改变局部视图的好方法。另一种方法是使用AJAX加载局部视图,
function functionName(controller, method, data, onSuccess, onError) {
return $.post(baseUrl + '/' + controller + '/' + method, data, onSuccess).error(function (err) {
if (onError) onError(err);
});
}
答案 1 :(得分:0)
如果有人发现这一点,答案是除了使用PartialViews之外没有办法做到这一点。