Feather: Filter by category or tag
If your controller has an action named ListByTaxon
with first parameter Telerik.Sitefinity.Taxonomies.Model.ITaxon
then Feather invokes this action, if a category or a tag matches the URL segment after the page URL.
You can optionally have a second parameter of type int?
that you can use for paging.
The following declaration that uses this convention:
public ActionResult ListByTaxon(ITaxon taxonFilter, int? page)
Feather first tries to match a category, then it fallbacks to tags. When an item matches, the action is invoked with the matching taxon.
The following sample implementation filters NewsItems
:
public ActionResult ListByTaxon(ITaxon taxonFilter, int? page)
{
var manager = NewsManager.GetManager();
string fieldName;
if (taxonFilter.Taxonomy.Name == "Categories")
fieldName = taxonFilter.Taxonomy.TaxonName;
else
fieldName = taxonFilter.Taxonomy.Name;
var items = manager.GetNewsItems().Where(n => n.GetValue<
IList
<Guid>>(fieldName).Contains(taxonFilter.Id) && n.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live).ToList();
return View("Index", items);
}