我正在构建一个MVC4应用程序来对wiki文档进行搜索。一切都很好,但我还没有找到最好的方法,使方面可链接。
我在我的起始页面上突出了这些方面,以便更容易地找到您要查找的关键字:
var products = solr.Query(SolrQuery.All,
new QueryOptions {
Rows = 0,
Facet = new FacetParameters {
Queries = new[] { new SolrFacetFieldQuery("products") }
}
});
foreach(var facet in products.FacetFields["products"]) {
var catagoryFacet = new CategoryFacet(facet.Key, facet.Value);
facetProductList.Add(catagoryFacet);
}然后循环遍历视图中的列表,如下所示:
<h2> Products: </h2>
@foreach (var facet in Model)
{
foreach(var item in facet.products) {
<td><a href="http://localhost:5000/Home/FreeSearch?search=@Html.DisplayFor(ModelItem => item.Name)">@Html.DisplayFor(ModelItem => item.Name), @Html.DisplayFor(ModelItem => item.Count)</a></td> <br/>
} 但是使用这种方法时,当用户单击链接时,会发生的情况是,我将facet的单词发回给控制器,因为我知道它是存在的,所以会对该关键字进行搜索。
我知道这是一种不好的方式,所以我想找出一种更好的方法,而且由于我来自瑞典,如果我使用“a”中的任何一种,这个链接就断了。可以用javascript来处理,但感觉很难看,那么我如何才能以更好的方式来处理呢?
我一直在查看筛选器查询,但如何使其可链接?
向乔纳森问好
发布于 2013-09-25 12:54:21
我简单地把Url.Encode放在Item.Name上解决了这个问题。现在搜索成功了,就像我想的那样。
<h2> Products: </h2>
@foreach (var facet in Model)
{
foreach(var item in facet.ProductFacets) {
<td><a href="http://localhost:5000/Home/FreeSearch?search=@Url.Encode(item.Name)">@Html.DisplayFor(ModelItem => item.Name), @Html.DisplayFor(ModelItem => item.Occurrences)</a></td> <br/>
}https://stackoverflow.com/questions/18998465
复制相似问题