【问题标题】:How can either a pdf or a jpeg be viewed when master page only allows one path?当母版页只允许一个路径时,如何查看 pdf 或 jpeg?
【发布时间】:2016-10-28 08:13:23
【问题描述】:

我在 Visual Studio 中使用 C#、LINQ 和母版页创建了 Code First Entity Framework ASP.NET Web 表单应用程序,因此这些表是根据我手动输入的种子数据自动创建的,该种子数据是来自我的图形和网页设计组合。共有三个类别:页面布局、插图和网页设计。当点击这三个类别之一时,另一个页面显示缩略图列表,这些缩略图都是 jpg 文件。单击其中一个缩略图时,它应该打开另一个视图以显示更大版本的作品集。但是,一个问题是一些较大的图像是 pdf,而有些是 jpg。缩略图和较大的图像具有相同的名称,只是一些较大的图像具有 pdf 扩展名。缩略图和较大的图像位于不同的目录中。与缩略图同名的较大图像位于 ImagePath 中。以前,pdf不显示的问题,所以我添加了一个PdfPath,但现在较大的jpg不显示。在 WorkDetails 母版页后面的代码中设置一个函数是否有效,例如“如果有 PdfPath,则执行此操作...如果有 ImgPath,则执行此操作”?

WorkDatabaseInitializer 类:

public class WorkDatabaseInitializer : DropCreateDatabaseIfModelChanges<WorkContext>
    {
        protected override void Seed(WorkContext context)
        {
            GetCategories().ForEach(c => context.Categories.Add(c));
            GetWorks().ForEach(w => context.Works.Add(w));
        }

        private static List<Category> GetCategories()
        {
            var categories = new List<Category> {
                new Category
                {
                    CategoryID = 1,
                    CategoryName = "Page Layout"
                },
                new Category
                {
                    CategoryID = 2,
                    CategoryName = "Web Development"
                },
                new Category
                {
                    CategoryID = 3,
                    CategoryName = "Illustration"
                },
        };
            return categories;
        }
        private static List<Work> GetWorks()
        {
            var works = new List<Work> {
                new Work
                {
                    WorkID = 1,
                    WorkName = "Menu",
                    Description = "Restaurant menu composed with Adobe InDesign", 
                    **ImagePath="",
                    PdfPath="GardenMenu.pdf"**,
                    CategoryID = 1
               },
               new Work
                {
                    WorkID = 2,
                    WorkName = "Dell Advertisement",
                    Description = "Dell Computer ad", 
                    **ImagePath="Dell.jpg",
                    PdfPath="",**
                    CategoryID = 1
               },

            };
            return works;
        }
    }
}

工作详情母版页:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="WorkDetails.aspx.cs" Inherits="Grafica.WorkDetails" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <asp:FormView ID="workDetail" runat="server" ItemType="Grafica.Models.Work" SelectMethod ="GetWork" RenderOuterTable="false"> <ItemTemplate> <div> <h1><%#:Item.WorkName %></h1> </div> <br /> 
        <table> 
            <tr> 
        <td> 
            <a href="Catalog/Images/<%#:Item.PdfPath %>">
                <img src="/Catalog/Images/Thumbs/<%#:Item.ImagePath %>" style="border: solid;" alt="<%#:Item.WorkName %>" /> 
            </a>


</td> 
        <td>&nbsp;</td> 
                <td style="vertical-align: top; text-align:left;"> 
                    <b>Description:</b><br /><%#:Item.Description %> <br /> <span><b>Project Number:</b>&nbsp;<%#:Item.WorkID %></span> <br /> 

                </td> 

            </tr> 

        </table> 

                                                                                                                                  </ItemTemplate> </asp:FormView>
</asp:Content>

【问题讨论】:

    标签: c# asp.net linq webforms master-pages


    【解决方案1】:

    是的。您要么需要这种逻辑,要么将 PDF 和较大的图像放在同一目录中。

    【讨论】:

    • pdf和大图在同一个目录下。
    • 哦,我明白了,pdfpath 和 imagepath 还包含文件名,大概是以某种方式生成的?您将必须知道要链接到哪种文件。我相信可以设置服务器来尝试不同的扩展(至少是 Apache),但这往往不会经常使用,因为如果服务器配置没有得到精心维护,它可能会导致意外中断。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    相关资源
    最近更新 更多