Sharepoint 2010 JQuery Ajax funktioniert nicht

Ich habe einen benutzerdefinierten webpart in Sharepoint und bin versucht, einige ajax, um das webpart.

Der gleiche code funktioniert in einem .net web-Anwendung, aber nicht in einem sharepoint-Webpart.

Den code aus dem .net web-Anwendung wird unten gezeigt (die aspx-Seite und der code-behind), welche gut funktioniert.:

ASPX-Datei

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="WebApplication3._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
  //Add the page method call as an onclick handler for the div.
    $("#Result").click(function () {
        var loc = window.location.href;
    $.ajax({
      type: "POST",
      url: loc + "/GetMessage",
      data: "{}",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function(msg) {
        //Replace the div's content with the page method's return.
        $("#Result").text(msg.d);
      }
    });
  });
});

   </script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <div id="Result">Click here for the time.</div>
    <asp:Button ID="btnClick" runat="server" Text="Button" />
</asp:Content>

.CS-Datei

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;

namespace WebApplication3
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        [WebMethod]
        public static string GetMessage()
        {
            return "Codebehind method call...";
        }
        [WebMethod]
        public static string GetDate()
        {
            return DateTime.Now.ToString();
        }
    }
}

Den text "Klicken Sie hier für die Zeit" ändert sich zu "Code hinter den Aufruf der Methode" wenn ich drauf klicke, ohne dabei ein postback. Ich kann in den code Schritt, und dieser ruft die Methode GetMessage() im code hinter innerhalb .net web-Anwendung.

Allerdings funktioniert dies nicht auf ein webpart in sharepoint 2010. Hat jemand irgendwelche Ideen?

  • this does not work on a webpart within sharepoint 2010. Was ist das Verhalten/die Fehlermeldung?
  • Ich nicht, bekomme eine Fehlermeldung in irgendeiner form. Ich habe einen Haltepunkt gesetzt in der getMessage() Methode, die nie getroffen wird.
  • Was ist der client-Seite? Fügen Sie einen error-handler, die auf Ihrem $.ajax nennen
  • Hallo Steve, ich habe gerade gebucht mit der gleichen Frage auf der sharepoint-Sektion von Stackoverflow und jemand hat vorgeschlagen, die Verwendung von webservices als Teil der Lösung . Schauen Sie sich diesen link und befolgen Sie die Frage von hier aus. sharepoint.stackexchange.com/questions/51865/...
  • Vielleicht kann das helfen : stackoverflow.com/questions/5890202/.... Ich glaube nicht, dass dies ist ein Duplikat, aber es kann Ihnen helfen
InformationsquelleAutor vinnie | 2012-11-19
Schreibe einen Kommentar