我是一名新的ASP.NET开发人员,我正在尝试开发一个名为Useful Library的页面,其中包含许多内容,例如有用的演示文稿和pdf文档。我在服务器中有一个名为(有用的资源)的文件夹,我将所有这些有用的演示文稿和文档放入其中。我的数据库中有以下表格:
UsefulResources Table: ID, Category, Title, URL, Uploaded Date, Hits
设计此表的原因是组织资源。我现在想要能够浏览或下载这些文件。 ***例如,我有一个名为(AP Presentation)的演示文稿: *** ID = 5,URL = AP Prsentation.pptx ******
我的ASP.NET代码:
<asp:HyperLinkField DataNavigateUrlFields="ID,URL"
DataNavigateUrlFormatString="Useful Resources/URL={0}"
DataTextField="Title" HeaderText="Title" />
我对此部分有疑问,我不知道如何修复它以便能够打开或下载此演示文稿,那么该怎么做?
为了您的信息,名为(Library.aspx)的页面,我没有任何代码隐藏
更新
我现在的链接如下: PMVT / MSA / PSSP /有用%20Resources / ID = 5
顺便说一句,这是一个基于Web的Intranet应用程序,因此您将无法使用此链接访问它。
我收到以下错误:
更新#2: 这是我使用SqlDataSource的ASP.NET代码:
<asp:SqlDataSource ID="Sql_Reports" runat="server"
ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
SelectCommand="SELECT [ID], [Title], [URL], [UploadedDate] FROM [UsefulResources] WHERE ([Category] = @Category) ORDER BY [UploadedDate] DESC">
<SelectParameters>
<asp:ControlParameter ControlID="Label1" Name="Category" PropertyName="Text"
Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
CellPadding="4" DataSourceID="Sql_Reports" ForeColor="#333333" GridLines="None"
Width="100%">
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#E3EAEB" />
<Columns>
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title">
<ItemStyle HorizontalAlign="Center" Wrap="False" Width="100px" />
</asp:BoundField>
<asp:HyperLinkField DataNavigateUrlFields="URL"
DataNavigateUrlFormatString="Useful Resources?URL={0}"
DataTextField="Title" HeaderText="Title" />
<asp:BoundField DataField="UploadedDate" DataFormatString="{0:MMM yyy}" HeaderText="UploadedDate"
SortExpression="UploadedDate">
<ItemStyle HorizontalAlign="Center" Wrap="False" Width="100px" />
</asp:BoundField>
</Columns>
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#7C6F57" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
我仍然以 pmvt / msa / pssp /有用的%20Resources /?URL = Electrical%20safety.ppt 获取链接。我该怎么做才能从该链接中删除 (?URL =) 以使链接正常工作。
更新#2:
以下是使用数据在数据库中创建表的脚本:
/****** Object: Table [dbo].[UsefulResources] Script Date: 08/06/2012 07:08:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[UsefulResources](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Category] [varchar](max) NULL,
[Title] [varchar](max) NULL,
[URL] [nvarchar](max) NULL,
[UploadedDate] [datetime] NULL,
[Hits] [int] NULL,
CONSTRAINT [PK_UsefulResources] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[UsefulResources] ON
INSERT [dbo].[UsefulResources] ([ID], [Category], [Title], [URL], [UploadedDate], [Hits]) VALUES (1, N'PowerPoint Presentations', N'PMOD', N'Electrical safety.ppt', CAST(0x0000A0A000000000 AS DateTime), 1)
INSERT [dbo].[UsefulResources] ([ID], [Category], [Title], [URL], [UploadedDate], [Hits]) VALUES (2, N'Word Documents', N'Fire Drill Evaluation', N'Fire Drill Evaluation.docx', CAST(0x0000A0A300000000 AS DateTime), 1)
SET IDENTITY_INSERT [dbo].[UsefulResources] OFF
答案 0 :(得分:0)
404错误(如您所见)表示Web服务器无法找到链接应指向的页面。问题可能是网址的有用%20Resources / ID = 5部分。
通常,参数在url末尾的问号之后作为键=值对传递,如此有用的%20Resources?ID = 5。情况并非总是如此(特别是在MVC应用程序中),因为您可以更改站点的路由数据以返回给定URL的几乎任何页面,但我建议您先验证该位。一旦你摆脱了404错误,那么看看你可能遇到的任何其他问题。
答案 1 :(得分:0)
我认为Useful
和Resources
之间的空格会导致此错误。更正源文件的地址,然后重试:
<asp:HyperLinkField DataNavigateUrlFields="URL"
DataNavigateUrlFormatString="{0}"
DataTextField="Title" HeaderText="Title" />
答案 2 :(得分:0)
我在web项目中创建了一些目录,如下所示: 的文档/白皮书/资源/ PDF 强> 并在那里放一些文件, Word.doc,Excel.xls,PowerPoint.ppt 。现在在网格视图中:
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
CellPadding="4" DataSourceID="SqlDataSource1"
ForeColor="#333333" GridLines="None"
Width="99%">
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#E3EAEB" />
<Columns>
<asp:BoundField DataField="Category" HeaderText="Category" SortExpression="Title">
<ItemStyle HorizontalAlign="Center" Wrap="False" Width="100px" />
</asp:BoundField>
<asp:HyperLinkField DataNavigateUrlFields="Url"
DataNavigateUrlFormatString="{0}"
DataTextField="Category" HeaderText="Category" />
</Columns>
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#7C6F57" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [UsefulResources]"></asp:SqlDataSource>
此网格视图中的链接指向每个文件,然后单击,开始下载目标文件。 数据库中的Url字段如下: 的 〜/文档/白皮书/资源/ PDF /检验.pdf 强>