为什么java脚本无法访问这个asp.net var?

时间:2010-12-02 20:26:21

标签: c# asp.net jquery

我有这个c#用户控件类:

public partial class UserControls_JsTop : System.Web.UI.UserControl
{
    public static string sidebarBannerUrl = getSideBarBannerImgUrl();

    protected void Page_Load(object sender, EventArgs e)
    {
    }

    public static string getSideBarBannerImgUrl(){
        DataClassesDataContext db = new DataClassesDataContext();
        var imgUrl = (from b in db.Banners
                      where b.Position.Equals(EBannersPosition.siderbar.ToString())
                      select b).FirstOrDefault();
        if (imgUrl != null)
            return imgUrl.Path;
        return String.Empty;

    }
}

我尝试在js脚本中访问static var:

在此处加载:

<script type="text/javascript">
    var categoryParam = '<%# CQueryStringParameters.CATEGORY %>';
    var subcategory1Param = '<%# CQueryStringParameters.SUBCATEGORY1_ID %>';
    var subcategory2Param = '<%# CQueryStringParameters.SUBCATEGORY2_ID %>';
    var imgUrl = '<%# UserControls_JsTop.sidebarBannerUrl %>';
</script>

并在此处使用(imgUrl):

<script type="text/javascript" language="javascript">
    $(function () {
        $(document.body).sidebar({
            size: "30px", // can be anything in pixels
            length: "270px", // can be anything in pixels
            margin: "300px", // can be anything in pixels
            position: "left", // left / bottom / right / top
            fadding: "0.8", // 0.1 to 1.0 
            img: imgUrl,
            openURL: "www.twitter.com/amitspatil"
        });
    }); 

 </script>

我不明白为什么它是空的。 请相信我在DB中有这样的记录。

我认为加载var ...时存在一些js问题。

你知道在哪里吗?

感谢

1 个答案:

答案 0 :(得分:3)

#更改为=以使用正常表达式而不是数据绑定表达式。