【发布时间】:2011-06-16 11:54:04
【问题描述】:
我有这个页面(丹麦语 - 对不起)http://www.itilbud.dk,我在中心有大量的报价,还有一些标签(按钮)。当用户点击一个按钮时,它应该使用点击类别的信息来过滤优惠。
我的问题是,谷歌似乎从第 3 页回到第 6 页,我认为这是因为当我点击我的标签按钮时,URL 会发生变化,但新页面会显示相同的优惠,现在由所选内容过滤类别。
发件人:http://www.itilbud.dk/ 收件人:http://www.itilbud.dk/Home/Index/10
默认路由显示主页/索引页面,上面显示的地址也是如此,并且两者上的数据相同(主页/索引页面上的子集,仅按标签号 10 过滤)
这是重复的内容,我只需要告诉我的页面过滤给定的标签值。
我可以使用 AJAX 来完成,还是调用仍会破坏重复的内容?因为数据将重新出现在同一页面上。
任何人都有一个好主意,在第 6 页上并不有趣 :-(
编辑 索引控制器代码
[HttpGet]
public ViewResult Index(string id)
{
//id is the tag-id
OfferRepository repository = new OfferRepository();
ViewData["amountoffers"] = repository.OfferAmount(); //not relevant, used to load the next n offers
List<Offer> offers = new List<Offer>();
if (string.IsNullOrEmpty(id))
{
offers = repository.LoadAll(0, 100); //max 100 offers
}
else
{
offers = repository.LoadAll(0, 100, int.Parse(id));
}
return View(offers);
}
呈现类别按钮的用户控件:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
<%OnlineTilbud.DataAccess.Tag tag = (OnlineTilbud.DataAccess.Tag)Model;
if(tag.Active)
{
%>
<span class="tag">
<%=Html.ActionLink(tag.TagName, "Index", new{Id=tag.Id}) %>
</span>
<%} else { %>
<span class="inactivetag">
<%=Html.ActionLink(tag.TagName, "Index", new{Id=tag.Id}) %>
</span>
<%} %>
真诚的
【问题讨论】:
-
可以添加控制器和查看代码吗?至少重要的部分
-
我唯一能想到的是你的“LoadAll”方法没有带来正确的数据。
-
请向我们展示 LoadAll 的代码。另外,不是做 int.Parse(id),而是把 id 作为一个 int?动作中的参数,比如这个 public ViewResult Index(int?id)
-
LoadAll() 方法的工作原理无关紧要,它只是加载数据。它在返回视图时会更改 URL。
标签: asp.net asp.net-mvc seo