我想从ASP.net 2010中的URL中删除ID。 我试图在网上搜索,但我没有得到一个明确的解决方案。 您能帮助我,或者给我发送明确的解决方案链接,以便在我的网站上理解和申请吗?
我在Architecture.aspx页面中有一个简单的datalist。这个datalist从SqlDataSource1获取信息(参见下面的代码)。 当我按下LinkButton(Image1)时,在我拥有的URL(http://localhost:51550/Portfolio/ViewProject.aspx?ID=1)中打开一个新页面(ViewProject)。我不想显示ID:
<asp:DataList ID="DataList1" runat="server" DataKeyField="ID"
DataSourceID="SqlDataSource1" RepeatColumns="4" RepeatDirection="Horizontal" style="margin-right: 0px"
EnableViewState="false">
<ItemTemplate>
<asp:Panel ID="Panel1" runat="server" BorderStyle = "None" Height="250px" Width="200px">
<table id="Table1" runat="server" style="height: 50px">
<tr >
<td style="color: #000000; width: 75%; font-weight: lighter" align="center">
<asp:LinkButton Width="145px" Height ="200px" ID="Image1" runat="server" CommandName="ViewDetails" CommandArgument='<%#Eval("ID") %>' OnCommand = "Click_LinkButton1" >
<div class ="pic">
<asp:Image ID = "im1" runat="server" ImageUrl= '<%# Eval("mainPic")%>' Width="150px" Height ="200px" BorderWidth="0px" />
</div>
</asp:LinkButton>
</td>
</tr>
<tr >
<td style="width: 75%; font-weight: lighter; padding-left:19px">
<asp:Label ID="lbl2" runat="server" Text='<%#Eval("title") %>' ForeColor="Gray" Font-Names="Lucida Sans Unicode" Font-Size="12px"></asp:Label>
</td>
</tr>
</table>
</asp:Panel>
</ItemTemplate>
</asp:DataList>
</div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:PortfolioConnectionString %>"
SelectCommand="SELECT [ID], [title], [mainPic] FROM [Project]">
</asp:SqlDataSource>
protected void Click_LinkButton1(object sender, CommandEventArgs e)
{
string url = "ViewProject.aspx?";
url += "ID=" + e.CommandArgument;
Response.Redirect(url);
}
答案 0 :(得分:0)
您可以将其用作
protected void Click_LinkButton1(object sender, CommandEventArgs e)
{
string url = "ViewProject.aspx";
Session("ID") = e.CommandArgument;
Response.Redirect(url);
}
并可以在另一个页面的页面加载事件中访问它
protected void Page_Load(object sender, System.EventArgs e)
{
String strID = Session("ID").ToString;
}
要详细了解会话,请访问asp.net-tutorials.com/state/sessions/,MSDN文章ASP.NET Session State和How to: Read Values from Session State
答案 1 :(得分:0)
相反,您应该传递网址中的ID。关于它,没有什么不专业的。对于不包括它的问题,它当然更可取。如果您关注外观,可以让它看起来更漂亮。您不必使用查询字符串。
查询字符串示例:
img
ASP.NET有一个routing概念,您可以在应用程序中使用它来获得干净的URL。使用路由,您的网址可能如下所示:
example.com/ViewProject.aspx?id=987
使用其他一些工具,您可以使搜索引擎/用户友好(Stack Overflow可以做到这一点):
example.com/ViewProject/987