【发布时间】:2016-03-15 15:02:21
【问题描述】:
我正在使用 ASP.NET MVC,我有一个简单的要求。我需要能够将两个服务器端值“注入”到我的 JavaScript 对象中。
我的 JavaScript 对象位于我的项目引用的单独 js 文件中,但我需要能够在对象第一次使用之前将数据注入到对象中。
我的代码目前看起来像这样。
var ImageSizeEnum = {
Small: 0,
Medium: 1,
Large: 2
};
var UrlBuilder = (function (baseImageUrl, storageContainer) {
var _baseImageUrl = baseImageUrl;
var _storageContainer = storageContainer;
this.BuildImageUrl = function (stockImage, imageSizeEnum) {
var imageSizeString = "";
switch (imageSizeEnum) {
case ImageSizeEnum.Small:
imageSizeString = "sm";
break;
case ImageSizeEnum.Medium:
imageSizeString = "md";
break;
case ImageSizeEnum.Large:
imageSizeString = "lg";
break;
}
var url = kendo.format(_baseImageUrl + "_{2}{3}", _storageContainer, stockImage.AzureId, imageSizeString, stockImage.Extension);
return url;
};
});
它在我的_Layout.cshtml 页面中像这样调用。
$(function () {
UrlBuilder("@WebConfigSettings.BaseImageUrlPath", "@WebConfigSettings.AzureStorageContainer");
});
但由于BuildImageUrl 未定义,此代码似乎无法正常工作。我认为这是因为我实际上并没有通过在声明时使用 () 调用 UrlBuilder 对象来初始化和返回它。
我对不同类型的 JavaScript 对象模式(即文字、函数等)有所了解,但我完全不确定解决我的特定问题的“正确”模式和方法是什么。
有什么建议吗?
【问题讨论】:
标签: javascript asp.net asp.net-mvc object constructor