Begin ASP.net

Status
Niet open voor verdere reacties.

EdjeCageman

Gebruiker
Lid geworden
24 okt 2011
Berichten
273
Beste mensen,

Ik ben een beginneling met ASP.net. Ff een beetje nu aan het aan*****n met de beginnelingsfases. Als code hangt erachter C#
Nu even een klein probleempje waarin ik aanloop:
Ik heb een dropdownlist met de naam van verschillende plaatjes, deze plaatjes wil ik getoond hebben onder deze dropdownlist wanneer er op een knop wordt gedrukt.

Nu heb ik de plaatjes naar de goede locatie gesleept, en de link zo aangepast dat hij het plaatje behoort op te halen. Wanneer de site voor de 1ste keer opent zou er een plaatje moeten worden getoond van een Koala (jaja de Windows standaard plaatjes dus:p)
Maar nu als ik de site open heb ik al zo'n "image broken" plaatje.

Code:
Code:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Plaatjes.aspx.cs" Inherits="Plaatjes" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:DropDownList ID="DropDownList1" runat="server">
            <asp:ListItem>Koala</asp:ListItem>
            <asp:ListItem>Lighthouse</asp:ListItem>
            <asp:ListItem>Chrysanthemum</asp:ListItem>
            <asp:ListItem>Desert</asp:ListItem>
            <asp:ListItem>Hydrangeas</asp:ListItem>
            <asp:ListItem>Jellyfish</asp:ListItem>
            <asp:ListItem>Pinguins</asp:ListItem>
            <asp:ListItem>Tulips</asp:ListItem>
        </asp:DropDownList>
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
        <br />
        <br />
        <asp:Image ID="Image1" runat="server" AlternateText="Plaatje niet te vinden" 
            ImageUrl="~/App_Data/Koala.gif" />
        <br />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    
    </div>
    </form>
</body>
</html>

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Plaatjes : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        String waarde = DropDownList1.SelectedValue;
        Image1.ImageUrl = "~/App_Data/"+waarde+".jpg";
        Label1.Text = "~/App_Data/"+ waarde + ".jpg";
    }
}

Het opstartplaatje is btw een gif en de andere plaatjes zijn wel een JPG. Ze zijn wel bestaand op de locatie (althans volgens visual studio), dus dat zou 't ook niet moeten zijn en wat ik wel vreemd vind, in Visual Studio krijg ik wel het plaatje te zien, ga ik hem 'runnen' niet.
 
Hoi EdjeCageman.
Ik ben minder dan een asp-beginner (nooit in verdiept), maar toch probeer ik wat. ;)
Wat lokaal op een Windows-machine staat, mag een naam hebben die uit hoofd- of kleine letter bestaat, en hoe ernaar verwezen wordt maakt niet uit.
  • Win kent het verschil niet! Als je bv. in de Verkenner een bestand Test.jpg hebt staan en er vanuit een andere map een afbeelding test.jpg of TEST.jpg in sleept, komt Windows met de vraag: "Bestand bestaat al. Overschijven? Ja/Annuleren".
Een server kent wel degelijk het verschil tussen hoofd- en kleine letters: daar zijn het drie verschillende bestanden!
  • Dus heeft misschien het geüploade image een kleine letter aan het begin (koala.jpg), terwijl in de code verwezen wordt naar Koala.jpg (de "DropDownList1.SelectedValue" plus .jpg)?
  • Met het gif-opstartplaatje zou hetzelfde aan de hand kunnen zijn.
  • Je bent er gauw achter door in de browser-URL-adresregel naar de images-map van de site te gaan, en erachteraan de twee varianten in te tikken.
Mocht dit het zijn, dan de tip (en anders ook): mapnamen en bestandsnamen altijd met kleine letters = nooit vergissingen. :)

Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
De map App_Data is een systeemmap, en wordt standaard niet door IIS getoond, je kan dit uitzetten door in IIS (7) naar 'Request filtering' te gaan en bij 'Hidden segments' de naam weg te halen, maar het lijkt me beter als je jezelf aanleert om met een aparte map 'images' te werken.

@csshunter: IIS maakt geen onderscheid tussen hoofd- en kleine letters.
 
@Berkery
Ah, ik begrijp 't: IIS is ook Windows/Microsoft. :)
Dan heb ik niks gezegd.
 
Oke :) Dat hielp, heb nu een map Image erbij geplaatst en de links in de code gewijzigd en dit hielp:) Had niet verwacht dat het veel uit zou hebben gemaakt en dat de map App_Data ook gewoon een map was.

Dus tnx Berkery :)

enne @csshunter, iig ook bedankt voor het proberen te helpen je kan niet alles weten;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan