Html.ActionLink无意中发生了加载

时间:2018-04-07 02:15:05

标签: c# asp.net-mvc onload actionlink html.actionlink

我有一个部分视图来显示产品列表。在此视图中,我在每列上方都有ActionLinks来处理排序。总共有4个,它们都与下面的一个相同:

def require_same_user
  redirect_to_root_path unless article_owner? && admin?
end

def redirect_to_root_path
  flash[:danger] = 'You can only edit or delete your own articles'
  redirect_to root_path
end

def admin?
  current_user.admin?
end

def article_owner?
  current_user == @article.user
end

为了能够在不丢失任何先前的查询字符串的情况下附加当前URL,我创建了一个静态类AppendQueryString,并在其中创建了一个名为AppendQuery的方法。该课程如下所示:

 <div class="col-xs-2">
    @Html.ActionLink(Html.DisplayNameFor(m => m.ProductName).ToHtmlString(), "Products", AppendQueryString.AppendQuery("sortOrder", ViewData["ProductNameSort"].ToString()))
</div>

首先,我没有意识到问题是什么,但有些东西试图重写发送到此方法的相同键值,所以我不得不使用那个丑陋的if-else来正确地将键值添加到RouteValueDictionary中继续这个项目。

然而,现在问题很明显,出于某种原因,在页面加载时,我接下来会解雇这四个ActionLink,因此在页面加载时调用AppendQuery方法4次。呈现此局部视图的主视图仅在我确定之后才被调用。你们任何人都知道为什么会这样吗?提前谢谢。

0 个答案:

没有答案