【问题标题】:Return Type from User Control of VS Environments来自 VS 环境的用户控制的返回类型
【发布时间】:2015-09-23 13:21:17
【问题描述】:

当我尝试从 ASCX 控件获取一些实例时,我收到了来自 Visual Studio 2015 的烦人消息。有人可以给我建议吗?

第 1 步。创建一个 WebForm 项目,.NET 4.6。

步骤 2. 在 App_Code 文件夹中构建 Car.cs。

namespace MyTest
{
    public class Car
    {
        public string name { get; set; }
    }
}

步骤 3. 在根路径中构建 People.ascx。

<%@ Control Language="C#" %>
<script runat="server">
    private MyTest.Car _Car = new MyTest.Car();
    public MyTest.Car oCar
    {
        get { return _Car; }
    }
    public string carName
    {
        set
        {
            _Car.name = value;
        }
        get
        {
            return _Car.name;
        }
    }
    public string peopleName { set; get; }
    public void Page_Load(Object sender, EventArgs args)
    {
        ascxMsg.Text = peopleName + " driving " + carName;
    }
</script>
<asp:Literal ID="ascxMsg" runat="server" />

步骤 4. 在根路径下构建 WebForm1.aspx。

<%@ Page Language="C#" %>
<%@ Register Src="People.ascx" TagPrefix="foo" TagName="boo" %>

<script runat="server">
    public void Page_Load(Object sender, EventArgs args)
    {
        testing.peopleName = "John";
        testing.carName = "BMW";

        MyTest.Car oTempCar = testing.oCar;
        msg.Text = oTempCar.name;
    }

</script>


<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
            <foo:boo id="testing" runat="server" /><br />
            <asp:literal id="msg" runat="server" />
    </div>
    </form>
</body>
</html>

一切都非常完美,浏览器显示:

John driving BMW
BMW 

**但是...在我的VS 2015上继续显示一些烦人的消息,红色下划线显示:**

The type 'Car' is defined in an assembly that is not referenced. You must add a reference to assembly 'App_Code.brabra...'.

P.S 这些代码只是演示错误消息的问题。请不要当真。

【问题讨论】:

    标签: c# asp.net webforms visual-studio-2015


    【解决方案1】:

    将 Car.cs 移动到独立的类库或转换为 Web 应用程序项目可以避免该错误。我猜这是 VS2015 的一个错误,它没有在 IDE 中正确引用已编译的 App_Code 二进制文件。

    【讨论】:

      【解决方案2】:

      你的 uc 属性应该是字符串类型。使用 carName 而不是 Car。

      【讨论】:

      • 这不是我的问题点。只是一个代码示例,不要当真。
      猜你喜欢
      • 1970-01-01
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多