<asp:HyperLink ID="HyperLink1"
                                     runat="server" NavigateUrl='~/01NewsManage/Edit.aspx?id=<%# Eval("NewsID")%>'>修改</asp:HyperLink>在List页面点击修改跳转到Edit页面对新闻进行修改:
Edit后台部分代码:
if (Request.Params["id"] != null && Request.Params["id"].Trim() != "")
{
    NewsID = int.Parse(Request.Params["id"].ToString());
}调试的时候报错,提示:NewsID = int.Parse(Request.Params["id"].ToString());输入字符串的格式不正确。
我查看Request.Params["id"]的值为:[System.Web.HttpValueCollection] = {id=%3c%25&ASP.NET_SessionId=o2nx2wzjty0rb55omf2uh0gf&CheckCode=5657&ALL_HTTP=HTTP_CONNECTION%3aKeep-Alive%0d%0aHTTP_ACCEPT%3aimage%2fjpeg%2c+application%2fx-ms-application%2c+image%2fgif%2c+application%2fxaml%2bxml%2c+image%2fpjpeg%2c+application%2fx-ms-xb...
忘各位大神帮忙指导下。在下万分感激

解决方案 »

  1.   

    if (Request.QueryString["id"] != null && Request.QueryString["id"].Trim() != "")
    {
      NewsID = int.Parse(Request.QueryString["id"].ToString());
    }
      

  2.   

    用<a href='~/01NewsManage/Edit.aspx?id=<%# Eval("NewsID")%>'>修改</a>
    不行么?      
    像这样的链接路径最好用相对路径
      

  3.   

    id=%3c%25 貌似你传过去的id不是整数,转化出错,你先在你的当前页面查看下网页的源代码,看看链接中的id是多少吧
      

  4.   

    #1 方法还是不行,同样的错误。但还是很感谢你的帮助
    #2 我要取到这个控件对它进行属性的设置,所以不能用<a>,谢谢你的指导。
    #3 页面不能运行,查看不到页面。 谢谢。
      

  5.   

    NewsID = int.Parse(Request.Params["id"].ToString());
    改成 NewsID =Request.Params["id"].ToString();查看下网页源文件  id 是否是数字看看
      

  6.   


     protected int ID {
                get {
                    int id = int.TryParse(Request.QueryString["id"], out id);
                    return id;
                }
            }
      

  7.   

    我想取得这个id的值然后赋值给数据库表中的NewsID,通过NewsID来获得对应的新闻信息。
      

  8.   

    根据错误判断给你两种可能性://① 你传过去的值为 Null 或者 ""//② 你传过去的值是字符串类型的,如:int NewID = int.Parse("x_01");   ×
       int NewID = int.Parse("1");      √
      

  9.   

    先 Response.Write(Request.Params["id"].ToString());//输出看下它是什么东东先然后再Response.Write(Request.QueryString["id"].ToString());//比较一下
      

  10.   

    肯定是因为这个地方不能正常解析 NavigateUrl='~/01NewsManage/Edit.aspx?id=<%# Eval("NewsID")%>'
    你这样写会原样输出的,
    看这里有例子asp.net数据绑定显示
      

  11.   

    我以前用<a href="Edit.aspx?id=<%# Eval("NewsID")%>">修改</a>
    然后再到后台:NewsID = int.Parse(Request.Params["id"].ToString());
    可是现在我想对修改进行属性的变动。别如说:当Title=“啊啊"的时候,修改不能使用。
    所以现在我将修改用一个HyperLink控件代替。结果NavigateUrl='~/01NewsManage/Edit.aspx?id=<%# (Eval("NewsID"))%>'这个里面传过来的id值为:id=%3c%25&ASP.NET_SessionId=o2nx2wzjty0rb55omf2uh0gf&CheckCode=5657&ALL_HTTP=HTTP_CONNECTION%3aKeep-Alive%0d%0aHTTP_ACCEPT%3aimage%2fjpeg%2c+application%2fx-ms-application%2c+image%2fgif%2c+application%2fxaml%2bxml%2c+image%2fpjpeg%2c+application%2fx-ms-xb...
    后台再用:NewsID = int.Parse(Request.Params["id"].ToString());
    就报错。说输入的字符串格式不正确。
    求解~
      

  12.   

    这是我在网上查得办法:问题描述:HyperLink控件的NavigateUrl=’~/PersonalManage/userInfo.aspx?uid=<%#Eval("userID") %>’
    运行结果,链接变成:
    http://localhost:1107/.../PersonalManage/userInfo.aspx?uid=<%#Eval("userID") %>
    也就是说绑定部分没有被解析
    方法一: NavigateUrl=’ <%#Eval("userID","~/PersonalManage/userInfo.aspx?uid={0}") %>’
    方法二: NavigateUrl='<%# "~/PersonalManage/PersonalInfoChange.aspx?UID="+Eval("userID") %>'
    如果是GrilView控件的HyperLinkField,则可以这样写(因为GrilView控件的HyperLinkField的NavigateUrl不支持直接在=号后面加绑定)
    <asp:HyperLinkField HeaderText="个人信息" Text="查看" DataNavigateUrlFormatString="~/PersonalManage/PersonalInfoChange.aspx?uid={0}"DataNavigateUrlFields="userID" />
    也可以将HyperLinkField转换为TemplateField,然后再在TemplateField里加HyperLink,再按照前面的方法做即可
     
     
     
      

  13.   

    NavigateUrl='<%#"~/PersonalManage/userInfo.aspx?uid="+Eval("userID") %>'
      

  14.   

    先 Response.Write(Request.Params["id"].ToString());//输出看下它是什么东东先然后再Response.Write(Request.QueryString["id"].ToString());//比较一下
      

  15.   

    <a id="HyperLink1"
      runat="server" href='../../../../01NewsManage/Edit.aspx?id=<%# Eval("NewsID")%>'>修改</a>