我是Sitecore和.NET的新手。我有一个旧的现有项目,该项目基于Sitecore 6.5,并由XSLT和.NET Framework 3.5呈现内容。
现在我需要创建一个可以进行AJAX调用的页面,以便不需要刷新页面并生成新内容。我对使用PHP的AJAX调用非常熟悉,但我对.NET中的那些调用很困惑。
我用Google搜索,发现大部分教程都基于Razor视图渲染。
任何人都可以向我提供一个完整的图片,我该怎样才能达到我的目标?
我想知道以下步骤是否正确:
答案 0 :(得分:0)
我终于用以下步骤解决了这个问题。
创建.ashx以呈现sitecore内容。 我已经与.ashx,.aspx和.asmx进行了比较。似乎.ashx是最好的选择。
using Sitecore.Configuration;
using Sitecore.Data;
using Sitecore.Data.Fields;
using Sitecore.Data.Items;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MYPROJECT.Web
{
/// <summary>
/// Summary description for AjaxTest
/// </summary>
public class AjaxTest : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
string ID = context.Request.QueryString["ID"];
Database master = Factory.GetDatabase("master");
Item source = master.GetItem("/sitecore/content/Home/MYPROJECT/gallery");
Item[] items = source.GetChildren().ToArray();
context.Response.Write(items[ID].Fields["image"].Value);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
p.s我从上面删除了一些验证码。
JavaScript AJAX调用.ashx。
$j('#ajax_test').click(function(){
$j.ajax({
//type: 'POST',
url: '/AjaxTest.ashx?ID='+$j('#inputunmber').val(),
//dataType: 'html',
//data: form.find(':input').serialize(),
success: function( response ) {
$j('.test_result').append(response);
},
error: function (xhr) {
alert("Error:" + xhr.responseText);
}
});
});