ASP.NET Web Form хочет отобразить каталог файлов

В настоящее время я пытаюсь изменить код этого учебника так, чтобы я мог создать веб-форму ASP.NET, которая позволит пользователям просматривать информацию и загружать мои выбранные работы портфолио. Однако, когда страница загружается, она обрабатывается так, как будто я хочу просмотреть часть сервера, на которой размещены файлы (~/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>

1 ответ

Добавьте этот код в ваш файл.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;
    }
}

Добавьте этот код в свой ListView в.aspx файле

<ItemTemplete>
    <asp:LinkButton runat="server" PostBackUrl='<%#Eval("Value") %>' ><%#Eval("Text") %></asp:LinkButton>
</ItemTemplate>
Другие вопросы по тегам