2011-02-12 67 views
0

我正在開發一個mvc應用程序。我爲不同的操作寫了一個jquery,並保存到一個名爲my.js的js文件中。我將這個js文件包含到我的頁面中。訪問ViewData使用JQuery

<script src="../../Scripts/my.js" type="text/javascript"></script>  

如何從該js文件訪問ViewData?我嘗試了很多方法,但沒有工作。 我用來從js文件訪問ViewData的代碼如下所示。

var CalanderPreference = "<%= ViewData["CalanderPreference"] %>"; 

但它返回錯誤,如「預期; '

任何想法?

回答

2

ViewData在客戶端無法訪問,因爲它僅存在於視圖呈現中。

您可以將您的視圖數據序列化到服務器端的json,將其寫入隱藏字段,然後將其解析爲客戶端的javascript對象。

2

你可以像這個例子一樣在視圖上創建你的javascript對象。

要把它放到你的觀點,而不是在一個單獨的文件:

 <script type="text/javascript"> 
      $(function() { 
       var saleYear = parseInt("<%=ViewData.Model.Sale24Hours.EndDate.Year %>"); 
       var saleMonth = parseInt("<%=ViewData.Model.Sale24Hours.EndDate.Month %>") - 1; 
       var saleDay = parseInt("<%=ViewData.Model.Sale24Hours.EndDate.Day %>"); 
       var saleHour = parseInt("<%=ViewData.Model.Sale24Hours.EndDate.Hour %>"); 
       var saleMinute = parseInt("<%=ViewData.Model.Sale24Hours.EndDate.Minute %>"); 
       var saleSecond = parseInt("<%=ViewData.Model.Sale24Hours.EndDate.Second %>"); 
       var endSaleDate = new Date(saleYear, saleMonth, saleDay, saleHour, saleMinute, saleSecond); 
       $("#countDownSale24").countdown({ until: endSaleDate, compact: true, format: "HMS" }); 
      }); 
     </script>