0

私は新しい ASP.NET 開発者で、便利なプレゼンテーションや PDF ドキュメントなどの多くのものを含む便利なライブラリと呼ばれるページを開発しようとしています。サーバーに(Useful Resources)というフォルダーがあり、そこにすべての有用なプレゼンテーションとドキュメントを入れています。データベースに次のテーブルがあります。

UsefulResources Table: ID, Category, Title, URL, Uploaded Date, Hits

このテーブルを設計する理由は、リソースを整理することです。これらのドキュメントを参照またはダウンロードできるようにしたいと考えています。***たとえば、(AP プレゼンテーション) という名前のプレゼンテーションがあります: ***ID = 5 および URL = AP Presentation.pptx******

私の ASP.NET コード:

<asp:HyperLinkField DataNavigateUrlFields="ID,URL" 
                                DataNavigateUrlFormatString="Useful Resources/URL={0}" 
                                DataTextField="Title" HeaderText="Title" />

この部分に問題があり、このプレゼンテーションを開いたりダウンロードしたりできるように修正する方法がわかりません

参考までに、(Library.aspx) というページにはコード ビハインドはありません。

アップデート:

私が今持っているリンクは次のとおりです: pmvt/msa/pssp/Useful%20Resources/ID=5

ところで、これはイントラネット Web ベースのアプリケーションであるため、このリンクを使用してアクセスすることはできません。

そして、次のエラーが表示されます。 ここに画像の説明を入力

更新 #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/Useful%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
4

3 に答える 3

0

404 エラー (ご覧のとおり) は、Web サーバーがリンク先のページを見つけられないことを意味します。問題は、URL の Useful%20Resources/ID=5 部分にある可能性があります。

通常、パラメーターは、この Useful%20Resources?ID=5 のように、URL の末尾にある疑問符の後にキー=値のペアとして渡されます。特定の URL からほぼすべてのページを返すようにサイトのルーティング データを変更できるため、これが常に当てはまるとは限りません (特に MVC アプリケーションの場合) が、最初にそのビットを確認することをお勧めします。404 エラーが解消されたら、さらに問題がないか調べてください。

于 2012-08-05T07:18:38.087 に答える
0

Documents/WhitePaper/Resources/PDFのように、Web プロジェクトにいくつかのディレクトリを作成し 、 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 フィールドは次のようになります: ~/Documents/WhitePaper/Resources/PDF/test.pdf

于 2012-08-07T11:36:52.090 に答える