When you install Sift a _SiftDefaultResults partial view is added that provides a default layout for the search results. This partial view is rendered in the results <div> to display the search results. There is nothing to stop you updating this partial view to meet your requirements. However, I would recommend creating separate partial views for your filter results.
You specify which partial view to display by adding the data-sift-result-partial to the outer <div> of a sift block. Do not include the ".cshtml" extension.
@inherits Umbraco.Web.Mvc.UmbracoViewPage <h1>Results Partial View Filter</h1> <div class="sift" data-sift-result-document-type="cinemaCento" data-sift-result-partial="_SiftResultsPartialExample"> <form class="sift-criteria"> @Html.AntiForgeryToken() <label for="filmName">Name</label> <input type="text" id="filmName" name="filmName" class="sift-criterion" data-sift-match-property="nodeName" /> <p></p> <input type="submit" value="Search" /> </form> <div class="sift-result"> </div> </div> <script src="~/Scripts/sift.js" type="text/javascript"></script>
The partial view should accept a SearchResultNodes object, which includes a Nodes property with a list of IPublishedContent references to the content found. It also contains the Criteria information and details on the number of results and number of pages returned.
Take a look at _SiftDefaultResults for an example of how this information can be used. The following results partial example displays the date and star rating for the films returned.
@model SiftLibrary.Models.SearchResultNodes @foreach (var node in Model.Nodes) { var formattedDate = node.Value<DateTime>("date").ToString("dd MMM yyyy"); var numStars = node.Value("starRating") + " stars"; <a href="@node.Url()">@node.Name()</a><br/> @formattedDate<br/> @numStars <hr /> }
When rendered this looks like this.