2010-04-02 64 views
0

微軟再次糟糕的文檔讓我感到困惑。我正在嘗試使用.NET 4.0框架的新功能。我使用下面的代碼來填充標題和導演,但它一直變得空白。MS AJAX Library 4.0 Sys.create.dataView

服務返回的結果正確像

[d: { title = "ss, director ="" }類似的東西,但李永遠不會被填充。

<script language="javascript" type="text/javascript"> 

     Sys.require([Sys.components.dataView, Sys.components.dataContext,Sys.scripts.WebServices], function() { 

      Sys.create.dataView("#moviesView", 
    { 
     dataProvider: "MovieService.svc", 
     fetchOperation: "GetMovies", 
     autoFetch: true   


    }); 

     }); 

</script> 

這裏,它的HTML代碼:

<ul id="moviesView"> 

    <li> 
    {{Title}} - {{Director}} 
    </li> 

    </ul> 

是這裏到Start.js文件的最新網址。

<script src="http://ajax.microsoft.com/ajax/beta/0911/Start.js"></script> 

下面是支持Ajax的WCF服務:

[ServiceContract(Namespace = "")] 
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
    public class MovieService 
    { 
     [OperationContract] 
     public Movie GetMovies() 
     { 
      return new Movie() { Title = "SS", Director = "SSSSS" }; 
     } 
    } 

    [DataContract] 
    public class Movie 
    { 
     [DataMember] 
     public string Title { get; set; } 

     [DataMember] 
     public string Director { get; set; } 
    } 

回答

1

您需要的SYS模板類屬性添加到無序列表標記。

<ul id="moviesView" class="sys-template"> 

下面是從Client-side Data Binding in ASP.NET AJAX 4.0

的一個其他要求的摘錄用於限定 模板是父元素必須 應用了SYS-模板CSS類 ,那類必須 定義顯示設置爲無,如上例所示 。這 會議有兩個目的 - 它 幫助分析器確定哪些 元素 您的網頁上的模板(當我們使用聲明 實例化將成爲重要 )的一部分,它使 模板標記隱藏,直到ASP。 NET Ajax已完成綁定(它會將 切換爲可見的 )。

+0

謝謝!就是這樣!我想知道爲什麼ms ajax框架不能使用像moviesView這樣的控件的id,而忘記了sys-template類。這似乎是一個更多的工作。 – azamsharp 2010-04-02 15:55:00