我正在开发一个mvc应用程序。我为不同的操作写了一个jquery并保存到一个名为my.js的js文件中。我将js文件包含在我的页面中。
<script src="../../Scripts/my.js" type="text/javascript"></script>
如何从该js文件访问ViewData。我尝试了很多方法。但还没有工作。 我用来从js文件访问ViewData的代码如下所示。
var CalanderPreference = "<%= ViewData["CalanderPreference"] %>";
但它返回了一个错误,如'预期; “
有什么想法吗?
答案 0 :(得分:2)
客户端无法访问ViewData,因为它仅存在于视图渲染中。
您可以将视图数据序列化到服务器端的json,将其写入隐藏字段,然后将其解析为客户端的javascript对象。
答案 1 :(得分: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>