using System;public partial class Test : System.Web.UI.Page
{
    public User user;
    protected void Page_Load(object sender, EventArgs e)
    {
        string name = user.Name;
    }
}public class User
{
    public int ID { get; set; }
    public string Name { get; set; }
}
以上代理会报

 未将对象引用设置到对象的实例。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
string name = user.Name;

上面是在aspx.cs中的报错,这样正常
但在aspx中能否对NullReferenceException不报错呢
如using System;public partial class Test : System.Web.UI.Page
{
    public User user;
    protected void Page_Load(object sender, EventArgs e)
    {    }
}public class User
{
    public int ID { get; set; }
    public string Name { get; set; }
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="Test" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <%= user.Name %>
    </form>
</body>
</html>这里的话当我的user为null的时候他就会报错,

未将对象引用设置到对象的实例。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 8:      <form id="form1" runat="server">
行 9:      <%= user.Name%>
行 10:     </form>

那能否能在不改变aspx页面内容的情况下,不让他不报错呢?谢谢

解决方案 »

  1.   

    不报错可以,但是 错误之后的代码 是不会执行的。不管是 try catch 还是 自定义error 事件
      

  2.   

    给User下的字段设置默认值吧.或者输出前判断一下是否为null.
      

  3.   

    把可能报错的地方 try起来,   catch里不做任何处理.    不过不建议这么干..  最好能提示哪里哪里错了..  不然用户使用的时候  还不知道发生了什么可怕的事情呢 
      

  4.   

     public User user;
    只见取值,没见赋值啊
      

  5.   

    public User user;你的User类都未实例化.乍不会报错
      

  6.   

    public User user; 
    string name = user.Name;
    你根本没在托管堆中占存储位置,不报null引用才怪
      

  7.   

    还是加 null判断,在页面调用cs里方法取值
      

  8.   

    我知道我没有赋值,我也知道他为null,我问的是如何让他不报这个错,也就是在aspx页面中,null不为错
    我就是不想用判断啊。也就是不改aspx样面的写法,而在其他对.NET进行设置谢谢
      

  9.   


    不判断基本不可能,不过可以这么写
    string name = (user==null?string.Empty:user.Name);
      

  10.   

    <%= user==null?string.Empty:user.Name %>
    我就是嫌他这样写得多啊谢谢
      

  11.   

    public User user=new User();
    public class User
        {
            public User() { this.Name = ""; }
            public int ID { get; set; }
            public string Name { get; set; }
        }