在共享webforms代码隐藏以进行用户控制时,如何访问公共属性

时间:2012-09-26 15:17:40

标签: c# asp.net

我正在尝试制作一个ascx控件,可以由我们的前端开发人员模板化,只需创建一个新的.ascx并指向该实例中的特定.ascx。但是,我在共享代码隐藏方案中访问属性时遇到问题。

我的共享

后面有以下代码
public partial class TemplateCodeBehind : TemplateControlBase
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    // Ascx Available properties
    public string GetOption1Value { get { return Option1; } }
    public string GetOption2Value { get { return Option2; } }
    public string GetOption3Value { get { return Option3; } }
    public string GetOption4Value { get { return Option4; } }
}

请注意,返回的选项是TemplateControlBase类的公共属性。在我的模板子文件夹中,我有以下ascx

<%@ Control Language="C#" AutoEventWireup="false" CodeBehind="../TemplateCodeBehind.ascx.cs" Inherits="MyNamespace.JqueryTemplates.TemplateCodeBehind" %>
<%@ Import Namespace="MyNamespace.JqueryTemplates" %>

<div>
     Option1: <%= GetOption1 %>

</div>

这编译很好,但是当我尝试加载我的测试ascx时,我收到以下错误

  

发生了错误。 DotNetNuke.Services.Exceptions.PageLoadException:c:\ Projects \ DNN-Dev \ Website \ DesktopModules \ Module.JqueryTemplates \ Templates \ Test.ascx(5):error CS0103:当前上下文中不存在名称'GetOption1' / p>

我尝试将<%=更改为<%#并致电Page.Databind(),但似乎没有任何效果。

关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:2)

在ascx文件中,将GetOption1更改为GetOption1Value