C# 如何在sitecore中进行查询
我试图在使用Ajax脚本时查询Sitecore中的某个字段。如果使用以下值对脚本进行硬编码,则脚本可以工作:C# 如何在sitecore中进行查询,c#,jquery,sitecore,C#,Jquery,Sitecore,我试图在使用Ajax脚本时查询Sitecore中的某个字段。如果使用以下值对脚本进行硬编码,则脚本可以工作: public void ProcessRequest(HttpContext context) { JOBject j = new JObject( new JProperty("test", 10), new JProperty("test1", 20) ); context.Response.ContentType = "applicatio
public void ProcessRequest(HttpContext context)
{
JOBject j = new JObject(
new JProperty("test", 10),
new JProperty("test1", 20)
);
context.Response.ContentType = "application/json";
context.Response.Write(j.ToString(Formatting.None));
}
但我要做的是在有输入时找到一个特定的值。因此,查询将搜索某个模板ID,然后在找到该模板时搜索特定字段,比如说“Book”,如果该字段与用户输入的值匹配,则会在同一项目上显示“Book Number”字段,该字段位于Sitecore中创建的同一项目上
try {
$.ajax({
type:"POST",
url:"/Test/Test.ajax.ashx",
data: {"field":$('#input').val()},
cache:false,
dataType:'json',
success: function(data, status, xhr) {
if (data.test== '' || data.test1== '') alert('nothing found');
else {
$('#test').html(data.test);
$('#test1').html(data.test1);
}
}
});
}catch (e) {
alert(e.message);
}
使用Lucene搜索上下文,您可以使用如下代码。这将查找基于给定模板Id的所有项目
using (var context = ContentSearchManager.GetIndex(Search.MasterIndex).CreateSearchContext())
{
IQueryable<SearchResultItem> query = context.GetQueryable<SearchResultItem>();
var computedLanguage = Sitecore.Context.Language.CultureInfo.Name.Replace("-", String.Empty);
SearchResults<SearchResultItem> results = null;
query = query.Where(x => x.TemplateId == new ID("{659B67C6-4810-4A22-B9E8-9463005113D6}"));
results = query.GetResults();
}
有几个过滤器可以用于Linq对象 第二个发生了什么?这可能会对您有所帮助;)。在Sitecore中,是否希望Sitecore搜索查询按模板Id进行搜索?或者帮我打这个ajax电话?谢谢。按模板ID搜索
query = query.Where(x => x.TemplateId == new ID("{659B67C6-4810-4A22-B9E8-9463005113D6}"))
.Where(x => x.Path.Contains("/Sitecore/Content"));