0

我正在尝试制作一个 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类的公共属性。在我的 Templates 子文件夹中,我有以下 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):错误 CS0103:当前上下文中不存在名称“GetOption1”

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

关于我如何做到这一点的任何想法?

4

1 回答 1

2

在 ascx 文件中更改GetOption1GetOption1Value

于 2012-09-26T16:06:56.777 回答