当前位置:编程学习 > C#/ASP.NET >>

将TextBox的值从前台传到另一个页面的后台,报错

<ItemTemplate>
<a href="#" onclick="javascript:window.location.href='oa_NoReply.aspx?fid=<%# DataBinder.Eval(Container, "DataItem.fid").ToString()%>Text=<%# Eval(TextBox1.Text) %>&condition=<%=ViewState["condition"]==null?"":Discuz.Common.Utils.HtmlEncode(ViewState["condition"].ToString().Replace("'","~^").Replace("%","~$"))%>';">点击查看问题</a>
        </ItemTemplate>



值不能为 null。
参数名: expression 
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.ArgumentNullException: 值不能为 null。
参数名: expression
aspx   textbox 异常 --------------------编程问答-------------------- 这一行有太多的变量,总之有一个为null
是不是ViewState["condition"],当然也许是别的 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
这一行有太多的变量,总之有一个为null
是不是ViewState["condition"],当然也许是别的

而且我发现用了好多“
会出错的 --------------------编程问答--------------------
<ItemTemplate>
<a href="#" onclick='javascript:window.location.href='oa_NoReply.aspx?fid=<%# DataBinder.Eval(Container, "DataItem.fid").ToString()%>Text=<%# Eval(TextBox1.Text) %>&condition=<%=ViewState["condition"]==null?"":Discuz.Common.Utils.HtmlEncode(ViewState["condition"].ToString().Replace("'","~^").Replace("%","~$"))%>';'>点击查看问题</a>
        </ItemTemplate>
--------------------编程问答--------------------
<ItemTemplate>
<a href="#" onclick=javascript:window.location.href='oa_NoReply.aspx?fid=<%# DataBinder.Eval(Container, "DataItem.fid").ToString()%>Text=<%# Eval(TextBox1.Text) %>&condition=<%=ViewState["condition"]==null?"":Discuz.Common.Utils.HtmlEncode(ViewState["condition"].ToString().Replace("\'","~^").Replace("%","~$"))%>'>点击查看问题</a>
        </ItemTemplate>
--------------------编程问答--------------------
<ItemTemplate>
<a href="#" onclick="javascript:window.location.href='oa_NoReply.aspx?fid=<%# DataBinder.Eval(Container, \"DataItem.fid\").ToString()%>Text=<%# Eval(TextBox1.Text) %>&condition=<%=ViewState[\"condition\"]==null?\"\":Discuz.Common.Utils.HtmlEncode(ViewState[\"condition\"].ToString().Replace(\"\'\",\"~^\").Replace(\"%\",\"~$\"))%>';">点击查看问题</a>
        </ItemTemplate>

可以试试下面的两种,必要时可以使用转义符(<%#... %>里面的是C#语法,这样做没有错) --------------------编程问答-------------------- 把URL里 除最外层双引号外,把里面的双引号全改为单引号 --------------------编程问答-------------------- 你这样写代码自己都难检查,最好你在.cs文件先把要链接内容或网址处理好,放到一个变量里,用变量绑定到html代码,这样错在哪里你都好检查 --------------------编程问答--------------------  

Text前面是不是还少了个 “&” --------------------编程问答--------------------
引用 5 楼 haibin_hu 的回复:
<ItemTemplate>
<a href="#" onclick="javascript:window.location.href='oa_NoReply.aspx?fid=<%# DataBinder.Eval(Container, \"DataItem.fid\").ToString()%>Text=<%# Eval(TextBox1.Text) %>&condition=<%=ViewState[\"condition\"]==null?\"\":Discuz.Common.Utils.HtmlEncode(ViewState[\"condition\"].ToString().Replace(\"\'\",\"~^\").Replace(\"%\",\"~$\"))%>';">点击查看问题</a>
        </ItemTemplate>

可以试试下面的两种,必要时可以使用转义符(<%#... %>里面的是C#语法,这样做没有错)



是Text=<%# Eval(TextBox1.Text)的问题,TextBox1的值没有传过去,不知道怎么改 --------------------编程问答--------------------
引用 8 楼 zhaojm0405 的回复:
 

Text前面是不是还少了个 “&”


是Text=<%# Eval(TextBox1.Text)的问题,TextBox1的值没有传过去,加了个&还是报同样的错误 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
这一行有太多的变量,总之有一个为null
是不是ViewState["condition"],当然也许是别的



是Text=<%# Eval(TextBox1.Text)的问题,TextBox1的值没有传过去,但是不知道怎么改 --------------------编程问答-------------------- 要用Text=<%# Eval(TextBox1.Text)是吧?
不如这样:Text=<%= TextBox1.Text %> --------------------编程问答-------------------- Text=<%= TextBox1.Text %> --------------------编程问答-------------------- 把onclick方法写到一个function里面去
var con="<%=ViewState["condition"] %>";
 var text = document.getElementById('TextBox1').value;
这样去获取自己要的值,然后拼接好再window.location.href ='oa_NoReply.aspx?Text='+text+'&condition=<%=ViewState["condition"]==null?"":"123"%>' ; --------------------编程问答--------------------
引用 14 楼 qxz_213 的回复:
把onclick方法写到一个function里面去
var con="<%=ViewState["condition"] %>";
 var text = document.getElementById('TextBox1').value;
这样去获取自己要的值,然后拼接好再window.location.href ='oa_NoReply.aspx?Text='+text+'&condition=<%=VizheewState["condition"]==null?"":"123"%>' ;

这里的三元每次都是123,但是上面的con能取到值,先判断好在拼把 --------------------编程问答-------------------- window.location.href ='oa_NoReply.aspx?Text='+<%= TextBox1.Text %>+'&condition='+<%=VizheewState["condition"]==null?"":"123"%>

补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,