【问题标题】:Access ViewData Using JQuery使用 JQuery 访问 ViewData
【发布时间】:2011-02-12 09:51:57
【问题描述】:

我正在开发一个 mvc 应用程序。我为不同的操作编写了一个 jquery 并保存到一个名为 my.js 的 js 文件中。我将该 js 文件包含在我的页面中。

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

如何从该 js 文件访问 ViewData。我尝试了很多方法。但还没有奏效。 我用来从 js 文件访问 ViewData 的代码如下所示。

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

但它返回一个错误,如 'Expected ; '

有什么想法吗?

【问题讨论】:

    标签: c# jquery model-view-controller


    【解决方案1】:

    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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-14
        • 2011-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多