检查aspx页面中的对象属性

时间:2012-10-10 09:41:40

标签: c# asp.net object properties

我有一个属性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 />
                    <%} %>

2 个答案:

答案 0 :(得分:1)

您可以调整{},以便在&lt;%和&lt;%#之间产生差异,也许您希望在{}中注入数据,为此需要您必须使用<%#

<%=用于注入值,

<%用于运行代码。

对于这个代码我理解但没有{},如果{}包含注入数据的代码,你必须使用&lt;%#。

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

答案 1 :(得分: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>