0

我目前正在尝试修改本教程的代码,以便我可以创建一个 ASP.NET Web 表单,该表单允许用户查看和下载我选择的作品集作品的信息。但是,当页面加载时,它被视为我想浏览托管文件的服务器部分(~/SelectedWorks),并且由于我的 Web.config 未配置为允许在该位置浏览目录 -或任何位置 - 我得到一个错误。

下面是页面背后的 ASP.NET 代码。除了名称不同的类之外,页面背后的 C# 代码与教程中的相同。我还专门使用 Visual Studio 2013 Ultimate(以及它的 IIS Express 捆绑版本)来测试页面。如果有人可以帮助我弄清楚发生了什么,我将不胜感激!

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="SelectedWorks.aspx.cs" Inherits="ConflictingGenius_ASP.SelectedWorks" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <section>
        <div>
            <hgroup>
                <h2><%: Page.Title %></h2>
            </hgroup>

            <asp:ListView ID="productList" runat="server" 
                DataKeyNames="WorkID" GroupItemCount="4"
                ItemType="ConflictingGenius_ASP.Models.SelectedWork" SelectMethod="GetProducts">
                <EmptyDataTemplate>
                    <table >
                        <tr>
                            <td>No data was returned.</td>
                        </tr>
                    </table>
                </EmptyDataTemplate>
                <EmptyItemTemplate>
                    <td/>
                </EmptyItemTemplate>
                <GroupTemplate>
                    <tr id="itemPlaceholderContainer" runat="server">
                        <td id="itemPlaceholder" runat="server"></td>
                    </tr>
                </GroupTemplate>
                <ItemTemplate>
                    <td runat="server">
                        <table>
                            <tr>
                                <td>
                                    <a href="WorkDetails.aspx?WorkID=<%#:Item.WorkID%>">
                                        <img src="<%#:Item.ImagePath%>"
                                            width="100" height="75" style="border: solid" /></a>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <a href="WorkDetails.aspx?WorkID=<%#:Item.WorkID%>">
                                        <span>
                                            <%#:Item.Title%>
                                        </span>
                                    </a>
                                    <br />
<%--                                    <span>
                                        <a href="<%#:this.ResolveClientUrl(Item.URLPath)%>">Download</a>
                                    </span>--%>
                                    <br />
                                </td>
                            </tr>
                            <tr>
                                <td>&nbsp;</td>
                            </tr>
                        </table>
                        </p>
                    </td>
                </ItemTemplate>
                <LayoutTemplate>
                    <table style="width:100%;">
                        <tbody>
                            <tr>
                                <td>
                                    <table id="groupPlaceholderContainer" runat="server" style="width:100%">
                                        <tr id="groupPlaceholder"></tr>
                                    </table>
                                </td>
                            </tr>
                            <tr>
                                <td></td>
                            </tr>
                            <tr></tr>
                        </tbody>
                    </table>
                </LayoutTemplate>
            </asp:ListView>
        </div>
    </section>
</asp:Content>
4

1 回答 1

0

将此代码添加到您的 .cs 文件中。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        string[] filePaths = Directory.GetFiles(Server.MapPath("~/Uploads/"));
        List<ListItem> files = new List<ListItem>();
        foreach (string filePath in filePaths)
        {
            files.Add(new ListItem(Path.GetFileName(filePath), filePath));
        }
        productList.DataSource = files;
    }
}

在 .aspx 文件的 ListView 中添加此代码

<ItemTemplete>
    <asp:LinkButton runat="server" PostBackUrl='<%#Eval("Value") %>' ><%#Eval("Text") %></asp:LinkButton>
</ItemTemplate>
于 2015-06-07T18:45:17.410 回答