守则:
ParentControl.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ParentControl.ascx.cs"
Inherits="ParentControl" %>
<%@ Register Src="~/ChildControl.ascx" TagPrefix="Prefix" TagName="ChildControlTag" %>
ParentControl.ascx.cs
public partial class ParentControl : UserControl
{
List<ASP.childcontrol_asxc> controlList = new List<ASP.childcontrol_asxc>();
... inside a public property setter ...
var control = new ASP.childcontrol_ascx(); // <ABC> what the heck is this reference?
controlList.Add(control);
...
}
ChildControl.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ChildControl.ascx.cs"
Inherits="ChildControl" %>
<asp:Repeater ID="childRepeater" runat="server" EnableViewState="false"
ViewStateMode="Disabled">
ChildControl.ascx.cs
public partial class ChildControl : UserControl
{
...
protected void Page_Load(object sender, EventArgs e)
{
childRepeater.DataSource = xyz; // <XYZ> crashes if I don't use the weird reference
}
}
问题:
我不明白标有<ABC>
的参考评论是什么。那不是我定义的课程......但智能感知并没有抱怨。如果我按F12
,它会转到ChildControl.ascx顶部的<%@ Control ... %>
标记,而不是ChildControl.ascx.cs中的控件定义。
我不明白控件的其他版本是什么,为什么它在ASP命名空间中,或者直接使用它而不是控件的含义是什么。更糟糕的是,这在我的本地工作站上编译很好,但是在我们用于CI的TFS服务器上抛出编译器错误。
问题:
有没有人知道这种使用/引用自定义用户控件的方法的名称,和/或有我可以查看的链接/信息,以便更好地处理这是什么以及含义是什么?我一直无法通过Google找到任何有用的内容。虽然修复/解决方法很棒 - 我仍然希望能够研究这项技术。
探索:
我尝试用实际的类名替换用法,而不是奇怪的ASP.class_ascx
引用...如果我这样做它编译得很好,但不幸的是它在运行时失败了。看起来其他引用改变了它与asp.NET生命周期的交互方式 - 在子控件的aspx中定义的服务器控件在子控件的Page_Load()
中标记为<XYZ>
(标记为ASP.control_ascx
)。在奇怪的Page_Load()
参考方法下,转发器在到达子控件的The type or namespace name 'usercontrol_ascx' does not exist in the namespace 'ASP' (are you missing an assembly reference?)
时已正确定义,但我不明白为什么。
杂
该项目通过DotNetCompilerPlatform NuGet package在本地工作站上使用Roslyn编译器,但我相信它只是在CI服务器上使用VS / TFS 2015内置编译器。这可以解释为什么TFS会抛出编译器错误 - 它告诉我var db = require('../dbconnection');
var register = {
registerAuth: function(data, callback){
db.query("insert sanames (id, fullName, email, confirmEmail, password, confirmPassword) values(newid(), '"+data.fullName+"', '"+data.email+"', '"+data.confirmEmail+"', '"+data.password+"', '"+data.confirmPassword+"')")
}
}
// db.query('insert sanames (id, fullName, email, confirmEmail, password, confirmPassword, dateAdded) values(newid(), "'data.fullName'", "'data.email'", "'data.confirmEmail'", "'data.password'", "'data.confirmPassword')")',callback)
module.exports = register;
。我正在考虑配置TFS以使用NuGet包中的编译器,然后希望编译 - 但这仍然很奇怪,我想了解它。
答案 0 :(得分:1)
这是ASPX文件编译的类。它继承了您的类并添加了呈现ASPX内容的代码。