0

我有财产public Client Clients { get; set; }

如果我有一个加载对象:

Client objClients = populate();
if (objClients != null)
{
    Clients = objClients;
}

我是否能够在 aspx 页面中访问该对象的属性,例如在 if 语句中。

我已经完成了以下操作,但我的页面变为空白并且加载事件没有运行,所以我认为它不正确:

<%if (this.Clients.Address1.Trim().Length > 0)
 { }%>

编辑::::

如果我这样做

public string Address1 { get; set; }
Client objClients = populate();
if (objClients != null)
            {
 Address1 = objClients.Address1;
}

然后在aspx文件中这样做它可以正常工作任何原因???

 <%if (Address1.Trim().Length > 0)
                      {%>
                      <%= Address1 %><br />
                    <%} %>
4

2 回答 2

1

您可以调整您的 { } 以在 <% 和 <%# 之间产生差异,也许您想在 {} 中注入数据,为此您必须使用<%#

<%=用于注入值,

<%用于运行代码。

对于此代码,我理解但没有 {},如果 {} 包含注入数据的代码,则必须使用 <%#。

<% if (this.Clients.Address1.Trim().Length > 0) %>
于 2012-10-10T09:54:20.600 回答
1

您还没有在 /aspx.cs 文件后面发布整个代码,因为我认为您可能在其中有错误。但我完全没有问题。

代码隐藏

namespace WebApplication1
{
    using System;

    public partial class _Default : System.Web.UI.Page
    { 
        public Client Clients { get; set; }

        protected void Page_Load(object sender, EventArgs e)
        {
            Client objClients = populate();
            if (objClients != null)
            {
                Clients = objClients;
            }
        }

        private Client populate()
        {
            return new Client() { Address1 =  "Somewhere in London" };
        }
    }

    public class Client
    {
        public string Address1 { get; set; }
    }
}

加价

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <% if (Clients.Address1.Trim().Length > 0){ %> 
            <%= Clients.Address1 %><br /> 
        <% }%>
    </form>
</body>
</html>
于 2012-10-10T13:24:45.813 回答