Pengantar Pemrograman Web ASP.NET Menggunakan Sintaks Razor (Visual Basic)

oleh Tom FitzMacken

Artikel ini memberi Anda gambaran umum pemrograman dengan ASP.NET Web Pages menggunakan sintaks Razor dan Visual Basic. ASP.NET adalah teknologi Microsoft untuk menjalankan halaman web dinamis di server web.

Apa yang akan Anda pelajari:

  • 8 tips pemrograman teratas untuk memulai pemrograman ASP.NET Web Pages menggunakan sintaks Razor.
  • Konsep pemrograman dasar yang Anda butuhkan.
  • Apa ASP.NET kode server dan sintaks Razor adalah semua tentang.

Versi perangkat lunak

  • ASP.NET Web Pages (Razor) 3

Tutorial ini juga berfungsi dengan ASP.NET Web Pages 2.

Sebagian besar contoh penggunaan ASP.NET Web Pages dengan sintaks Razor menggunakan C#. Tetapi sintaks Razor juga mendukung Visual Basic. Untuk memprogram halaman web ASP.NET di Visual Basic, Anda membuat halaman web dengan ekstensi nama file .vbhtml , lalu menambahkan kode Visual Basic. Artikel ini memberi Anda gambaran umum tentang bekerja dengan bahasa dan sintaks Visual Basic untuk membuat halaman Web ASP.NET.

Catatan

Templat situs web default untuk Microsoft WebMatrix (Bakery, Galeri Foto, dan Situs Pemula, dll.) tersedia dalam versi C# dan Visual Basic. Anda dapat menginstal templat Visual Basic dengan sebagai paket NuGet. Templat situs web diinstal di folder akar situs Anda dalam folder bernama Templat Microsoft.

8 Tips Pemrograman Teratas

Bagian ini mencantumkan beberapa tips yang benar-benar perlu Anda ketahui saat Anda mulai menulis kode server ASP.NET menggunakan sintaks Razor.

1. Anda menambahkan kode ke halaman menggunakan karakter @

Karakter @ memulai ekspresi sebaris, blok pernyataan tunggal, dan blok multi-pernyataan:

<!-- Single statement blocks  -->
@Code  Dim total = 7  End Code
@Code  Dim myMessage = "Hello World" End Code

<!-- Inline expressions -->
<p>The value of your account is: @total </p>
<p>The value of myMessage is: @myMessage</p>        
    
<!-- Multi-statement block -->    
@Code 
    Dim greeting = "Welcome to our site!"
    Dim weekDay = DateTime.Now.DayOfWeek
    Dim greetingMessage = greeting & " Today is: " & weekDay.ToString()
End Code 
<p>The greeting is: @greetingMessage</p>

Hasil yang ditampilkan di browser:

Razor-Img1

Tip

Pengodean HTML

Saat Anda menampilkan konten di halaman menggunakan @ karakter , seperti dalam contoh sebelumnya, ASP.NET HTML mengodekan output. Ini menggantikan karakter HTML yang dipesan (seperti < dan > dan &) dengan kode yang memungkinkan karakter ditampilkan sebagai karakter di halaman web alih-alih ditafsirkan sebagai tag atau entitas HTML. Tanpa pengodean HTML, output dari kode server Anda mungkin tidak ditampilkan dengan benar, dan dapat mengekspos halaman ke risiko keamanan.

Jika tujuan Anda adalah mengeluarkan markup HTML yang merender tag sebagai markup (misalnya <p></p> untuk paragraf atau <em></em> untuk menekankan teks), lihat bagian Menggabungkan Teks, Markup, dan Kode di Blok Kode nanti di artikel ini.

Anda bisa membaca selengkapnya tentang pengodean HTML dalam Bekerja dengan Formulir HTML di ASP.NET Situs Halaman Web.

2. Anda mengapit blok kode dengan Kode... Kode Akhir

Blok kode menyertakan satu atau beberapa pernyataan kode dan diapit dengan kata kunci Code dan End Code. Tempatkan kata kunci pembuka Code segera setelah @ karakter — tidak boleh ada spasi kosong di antara mereka.

<!-- Single statement block.  -->
@Code
    Dim theMonth = DateTime.Now.Month
End Code
<p>The numeric value of the current month: @theMonth</p>

<!-- Multi-statement block. -->
@Code
    Dim outsideTemp = 79
    Dim weatherMessage = "Hello, it is " & outsideTemp & " degrees."
End Code 
<p>Today's weather: @weatherMessage</p>

Hasil yang ditampilkan di browser:

Razor-Img2

3. Di dalam blok, Anda mengakhiri setiap pernyataan kode dengan jeda baris

Dalam blok kode Visual Basic, setiap pernyataan diakhir dengan pemisah baris. (Nanti di artikel Anda akan melihat cara untuk membungkus pernyataan kode panjang ke dalam beberapa baris jika diperlukan.)

<!-- Single statement block. -->
@Code
    Dim theMonth = DateTime.Now.Month
End Code

<!-- Multi-statement block. -->
@Code
    Dim outsideTemp = 79
    Dim weatherMessage = "Hello, it is " & outsideTemp & " degrees."
End Code 

<!-- An inline expression, so no line break needed. -->
<p>Today's weather: @weatherMessage</p>

4. Anda menggunakan variabel untuk menyimpan nilai

Anda dapat menyimpan nilai dalam variabel, termasuk string, angka, dan tanggal, dll. Anda membuat variabel baru menggunakan Dim kata kunci . Anda dapat menyisipkan nilai variabel langsung di halaman menggunakan @.

<!-- Storing a string -->
@Code 
    Dim welcomeMessage = "Welcome, new members!"
End Code
<p>@welcomeMessage</p>
    
<!-- Storing a date -->
@Code 
    Dim year = DateTime.Now.Year
End Code

<!-- Displaying a variable -->
<p>Welcome to our new members who joined in @year!</p>

Hasil yang ditampilkan di browser:

Razor-Img3

5. Anda mengapit nilai string literal dalam tanda kutip ganda

String adalah urutan karakter yang diperlakukan sebagai teks. Untuk menentukan string, Anda mengapitnya dalam tanda kutip ganda:

@Code 
    Dim myString = "This is a string literal"
End Code

Untuk menyematkan tanda kutip ganda dalam nilai string, sisipkan dua karakter tanda kutip ganda. Jika Anda ingin karakter kutipan ganda muncul sekali di output halaman, masukkan seperti "" dalam string yang dikutip, dan jika Anda ingin karakter tersebut muncul dua kali, masukkan seperti """" dalam string yang dikutip.

<!-- Embedding double quotation marks in a string -->
@Code 
    Dim myQuote = "The person said: ""Hello, today is Monday."""
End Code
<p>@myQuote</p>

Hasil yang ditampilkan di browser:

Razor-Img4

6. Kode Visual Basic tidak peka huruf besar/kecil

Bahasa Visual Basic tidak peka huruf besar/kecil. Kata kunci pemrograman (seperti Dim, , Ifdan True) dan nama variabel (seperti myString, atau subTotal) dapat ditulis dalam kasus apa pun.

Baris kode berikut menetapkan nilai ke variabel lastname menggunakan nama huruf kecil, lalu menghasilkan nilai variabel ke halaman menggunakan nama huruf besar.

@Code 
    Dim lastName = "Smith"
    ' Keywords like dim are also not case sensitive.
    DIM someNumber = 7
End Code
<p>The value of the <code>lastName</code> variable is: @LASTNAME</p>

Hasil yang ditampilkan di browser:

vb-sintaks-5

7. Sebagian besar pengkodian Anda melibatkan bekerja dengan objek

Objek mewakili hal yang dapat Anda programkan — halaman, kotak teks, file, gambar, permintaan web, pesan email, rekaman pelanggan (baris database), dll. Objek memiliki properti yang menjelaskan karakteristiknya — objek kotak teks memiliki Text properti, objek permintaan memiliki Url properti, pesan email memiliki From properti, dan objek pelanggan memiliki FirstName properti . Objek juga memiliki metode yang merupakan "kata kerja" yang dapat mereka lakukan. Contohnya termasuk metode objek Save file, metode objek Rotate gambar, dan metode objek Send email.

Anda akan sering bekerja dengan Request objek , yang memberi Anda informasi seperti nilai bidang formulir di halaman (kotak teks, dll.), jenis browser apa yang membuat permintaan, URL halaman, identitas pengguna, dll. Contoh ini menunjukkan cara mengakses properti Request objek dan cara memanggil MapPath metode Request objek, yang memberi Anda jalur absolut halaman di server:

<table border="1"> 
    <tr>
        <td>Requested URL</td>
        <td>Relative Path</td>
        <td>Full Path</td>
        <td>HTTP Request Type</td>
    </tr>
    <tr>
        <td>@Request.Url</td>
        <td>@Request.FilePath</td>
        <td>@Request.MapPath(Request.FilePath)</td>
        <td>@Request.RequestType</td>
    </tr>
</table>

Hasil yang ditampilkan di browser:

Razor-Img5

8. Anda dapat menulis kode yang membuat keputusan

Fitur utama halaman web dinamis adalah Anda dapat menentukan apa yang harus dilakukan berdasarkan kondisi. Cara paling umum untuk melakukan ini adalah dengan If pernyataan (dan pernyataan opsional Else ).

@Code
   Dim result = ""
   If IsPost Then
      result = "This page was posted using the Submit button."
   Else
      result = "This was the first request for this page."
   End If
End Code
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>Write Code that Makes Decisions</title>
    </head>
<body>
    
    <form method="POST" action="" >
        <input type="Submit" name="Submit" value="Submit"/>
        <p>@result</p>
    </form>
    
</body>
</html>

Pernyataan If IsPost ini adalah cara singkat untuk menulis If IsPost = True. Seiring dengan If pernyataan, ada berbagai cara untuk menguji kondisi, mengulangi blok kode, dan sebagainya, yang dijelaskan nanti dalam artikel ini.

Hasilnya ditampilkan di browser (setelah mengklik Kirim):

Razor-Img6

Tip

Metode HTTP GET dan POST dan Properti IsPost

Protokol yang digunakan untuk halaman web (HTTP) mendukung jumlah metode yang sangat terbatas ("kata kerja") yang digunakan untuk membuat permintaan ke server. Dua yang paling umum adalah GET, yang digunakan untuk membaca halaman, dan POST, yang digunakan untuk mengirimkan halaman. Secara umum, pertama kali pengguna meminta halaman, halaman diminta menggunakan GET. Jika pengguna mengisi formulir lalu mengklik Kirim, browser membuat permintaan POST ke server.

Dalam pemrograman web, sering kali berguna untuk mengetahui apakah halaman diminta sebagai GET atau sebagai POST sehingga Anda tahu cara memproses halaman. Di Halaman Web ASP.NET, Anda dapat menggunakan IsPost properti untuk melihat apakah permintaan adalah GET atau POST. Jika permintaan adalah POST, IsPost properti akan mengembalikan true, dan Anda dapat melakukan hal-hal seperti membaca nilai kotak teks pada formulir. Banyak contoh yang akan Anda lihat menunjukkan kepada Anda cara memproses halaman secara berbeda tergantung pada nilai IsPost.

Contoh kode sederhana

Prosedur ini menunjukkan kepada Anda cara membuat halaman yang menggambarkan teknik pemrograman dasar. Dalam contoh, Anda membuat halaman yang memungkinkan pengguna memasukkan dua angka, lalu menambahkannya dan menampilkan hasilnya.

  1. Di editor Anda, buat file baru dan beri nama AddNumbers.vbhtml.

  2. Salin kode dan markup berikut ke halaman, mengganti apa pun yang sudah ada di halaman.

    @Code
        Dim total = 0
        Dim totalMessage = ""
        if IsPost Then
            ' Retrieve the numbers that the user entered.
            Dim num1 = Request("text1")
            Dim num2 = Request("text2")
            ' Convert the entered strings into integers numbers and add.
            total = num1.AsInt() + num2.AsInt()
            totalMessage = "Total = " & total
        End If
    End Code
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8" />
            <title>Adding Numbers</title>
            <style type="text/css">
                body {background-color: beige; font-family: Verdana, Ariel; 
                    margin: 50px;
                    }
                form {padding: 10px; border-style: solid; width: 250px;}
            </style>
        </head>
    <body>
        <p>Enter two whole numbers and click <strong>Add</strong> to display the result.</p>
        <p></p>
        <form action="" method="post">
        <p><label for="text1">First Number:</label>
        <input type="text" name="text1" />
        </p>
        <p><label for="text2">Second Number:</label>
        <input type="text" name="text2" />
        </p>
        <p><input type="submit" value="Add" /></p>
        </form>
        <p>@totalMessage</p>
    </body>
    </html>
    

    Berikut adalah beberapa hal yang perlu Anda catat:

    • Karakter @ memulai blok kode pertama di halaman, dan mendahului variabel yang totalMessage disematkan di dekat bagian bawah.
    • Blok di bagian atas halaman diapit di Code...End Code.
    • Variabel total, , num1num2, dan totalMessage menyimpan beberapa angka dan string.
    • Nilai string harfiah yang ditetapkan ke totalMessage variabel berada dalam tanda kutip ganda.
    • Karena kode Visual Basic tidak peka huruf besar/kecil, ketika totalMessage variabel digunakan di dekat bagian bawah halaman, namanya hanya perlu mencocokkan ejaan deklarasi variabel di bagian atas halaman. Casing tidak masalah.
    • Ekspresi num1.AsInt() + num2.AsInt() menunjukkan cara bekerja dengan objek dan metode. Metode AsInt pada setiap variabel mengonversi string yang dimasukkan oleh pengguna menjadi bilangan bulat (bilangan bulat) yang dapat ditambahkan.
    • Tag <form> menyertakan method="post" atribut . Ini menentukan bahwa ketika pengguna mengklik Tambahkan, halaman akan dikirim ke server menggunakan metode HTTP POST. Saat halaman dikirimkan, kode If IsPost mengevaluasi ke true dan kode bersyariah berjalan, menampilkan hasil penambahan angka.
  3. Simpan halaman dan jalankan di browser. (Pastikan halaman dipilih di ruang kerja File sebelum Anda menjalankannya.) Masukkan dua bilangan bujur, lalu klik tombol Tambahkan .

    Razor-Img7

Bahasa dan Sintaks Visual Basic

Sebelumnya Anda melihat contoh dasar cara membuat halaman web ASP.NET, dan bagaimana Anda dapat menambahkan kode server ke markup HTML. Di sini Anda akan mempelajari dasar-dasar penggunaan Visual Basic untuk menulis kode server ASP.NET menggunakan sintaks Razor — yaitu, aturan bahasa pemrograman.

Jika Anda berpengalaman dengan pemrograman (terutama jika Anda telah menggunakan C, C++, C#, Visual Basic, atau JavaScript), banyak dari apa yang Anda baca di sini akan akrab. Anda mungkin perlu membiasakan diri hanya dengan bagaimana kode WebMatrix ditambahkan ke markup dalam file .vbhtml .

Menggabungkan teks, markup, dan kode dalam blok kode

Dalam blok kode server, Anda akan sering ingin mengeluarkan teks dan markup ke halaman. Jika blok kode server berisi teks yang bukan kode dan sebaliknya harus dirender apa adanya, ASP.NET harus dapat membedakan teks tersebut dari kode. Ada beberapa cara untuk melakukan ini.

  • Sertakan teks dalam elemen blok HTML seperti <p></p> atau <em></em>:

    @If IsPost Then
        ' This line has all content between matched <p> tags.
        @<p>Hello, the time is @DateTime.Now and this page is a postback!</p> 
    Else
        ' All content between matched tags, followed by server code.
        @<p>Hello, <em>Stranger!</em> today is: </p> @DateTime.Now
    End If
    

    Elemen HTML dapat menyertakan teks, elemen HTML tambahan, dan ekspresi kode server. Ketika ASP.NET melihat tag HTML pembuka (misalnya, <p>), ia merender semua elemen dan kontennya apa adanya ke browser (dan menyelesaikan ekspresi kode server).

  • @: Gunakan operator atau <text> elemen . Menghasilkan @: satu baris konten yang berisi teks biasa atau tag HTML yang tidak cocok; <text> elemen mencakup beberapa baris ke output. Opsi ini berguna ketika Anda tidak ingin merender elemen HTML sebagai bagian dari output.

    @If IsPost Then
        ' Plain text followed by an unmatched HTML tag and server code.
        @:The time is: <br /> @DateTime.Now
        ' Server code and then plain text, matched tags, and more text.
        @DateTime.Now @:is the <em>current</em> time.
    End If
    

    Contoh berikut mengulangi contoh sebelumnya tetapi menggunakan sepasang <text> tag tunggal untuk mengapit teks yang akan dirender.

    @If IsPost Then
        @<text>
        The time is: <br /> @DateTime.Now
        @DateTime.Now is the <em>current</em> time.
        </text>
    End If
    

    Dalam contoh berikut, <text> tag dan </text> mengapit tiga baris, yang semuanya memiliki beberapa teks yang tidak berkelanjutan dan tag HTML yang tidak cocok (<br />), bersama dengan kode server dan tag HTML yang cocok. Sekali lagi, Anda juga dapat mendahului setiap baris satu per @: satu dengan operator; cara apa pun berfungsi.

    @Code
        dim minTemp = 75 
        @<text>It is the month of @DateTime.Now.ToString("MMMM"), and  
        it's a <em>great</em> day! <p>You can go swimming if it's at 
        least @minTemp degrees.</p></text>
    End Code
    

    Catatan

    Saat Anda mengeluarkan teks seperti yang ditunjukkan di bagian ini — menggunakan elemen HTML, @: operator, atau <text> elemen — ASP.NET tidak mengodekan html output. (Seperti disebutkan sebelumnya, ASP.NET mengodekan output ekspresi kode server dan blok kode server yang didahului oleh @, kecuali dalam kasus khusus yang dicatat di bagian ini.)

Whitespace

Spasi ekstra dalam pernyataan (dan di luar string literal) tidak memengaruhi pernyataan:

@Code Dim personName =    "Smith"    End Code

Memecah pernyataan panjang menjadi beberapa baris

Anda dapat memecah pernyataan kode panjang menjadi beberapa baris dengan menggunakan karakter _ garis bawah (yang dalam Visual Basic disebut karakter kelanjutan) setelah setiap baris kode. Untuk memecah pernyataan ke baris berikutnya, di akhir baris tambahkan spasi lalu karakter kelanjutan. Lanjutkan pernyataan di baris berikutnya. Anda dapat membungkus pernyataan ke baris sebanyak yang Anda butuhkan untuk meningkatkan keterbacaan. Pernyataan berikut sama:

@Code
    Dim familyName _
    =  "Smith" 
End Code

@Code
    Dim _
    theName _
    = _
    "Smith"
End Code

Namun, Anda tidak dapat membungkus garis di tengah string harfiah. Contoh berikut tidak berfungsi:

@Code 
    ' Doesn't work.
    Dim test = "This is a long _
      string"
End Code

Untuk menggabungkan string panjang yang membungkus ke beberapa baris seperti kode di atas, Anda harus menggunakan operator perangkaian (&), yang akan Anda lihat nanti di artikel ini.

Komentar kode

Komentar memungkinkan Anda meninggalkan catatan untuk diri Anda sendiri atau orang lain. Komentar sintaks razor diawali dengan dan diakhiri dengan @**@.

@* A single-line comment is added like this example. *@
    
@*
    This is a multiline code comment. 
    It can continue for any number of lines.
*@

Dalam blok kode Anda dapat menggunakan komentar sintaks Razor, atau Anda dapat menggunakan karakter komentar Visual Basic biasa, yang merupakan tanda kutip tunggal (') yang diawali ke setiap baris.

@Code
    ' You can make comments in blocks by just using ' before each line.
End Code
    
@Code
    ' There is no multi-line comment character in Visual Basic. 
    ' You use a ' before each line you want to comment. 
End Code

Variabel

Variabel adalah objek bernama yang Anda gunakan untuk menyimpan data. Anda dapat memberi nama variabel apa pun, tetapi nama harus dimulai dengan karakter alfabet dan tidak boleh berisi spasi kosong atau karakter khusus. Di Visual Basic, seperti yang Anda lihat sebelumnya, kasus huruf dalam nama variabel tidak masalah.

Variabel dan jenis data

Variabel dapat memiliki jenis data tertentu, yang menunjukkan jenis data apa yang disimpan dalam variabel. Anda dapat memiliki variabel string yang menyimpan nilai string (seperti "Halo dunia"), variabel bilangan bulat yang menyimpan nilai bilangan bulat (seperti 3 atau 79), dan variabel tanggal yang menyimpan nilai tanggal dalam berbagai format (seperti 4/12/2012 atau Maret 2009). Dan ada banyak jenis data lain yang dapat Anda gunakan.

Namun, Anda tidak perlu menentukan jenis untuk variabel. Dalam kebanyakan kasus, ASP.NET dapat mengetahui jenis berdasarkan bagaimana data dalam variabel digunakan. (Terkadang Anda harus menentukan jenis; Anda akan melihat contoh di mana ini benar.)

Untuk mendeklarasikan variabel tanpa menentukan jenis, gunakan Dim ditambah nama variabel (misalnya, Dim myVar). Untuk mendeklarasikan variabel dengan jenis, gunakan Dim ditambah nama variabel, diikuti dengan As lalu nama jenis (misalnya, Dim myVar As String).

@Code
    ' Assigning a string to a variable.
    Dim greeting = "Welcome" 
    
    ' Assigning a number to a variable.
    Dim theCount = 3
    
    ' Assigning an expression to a variable.
    Dim monthlyTotal = theCount + 5
    
    ' Assigning a date value to a variable.
    Dim today = DateTime.Today
    
    ' Assigning the current page's URL to a variable.
    Dim myPath = Request.Url
    
    ' Declaring variables using explicit data types.
    Dim name as String = "Joe"
    Dim count as Integer = 5
    Dim tomorrow as DateTime = DateTime.Now.AddDays(1)
End Code

Contoh berikut menunjukkan beberapa ekspresi sebaris yang menggunakan variabel di halaman web.

@Code
    ' Embedding the value of a variable into HTML markup.
    ' Precede the markup with @ because we are in a code block.
    @<p>@greeting, friends!</p>
End Code

<!-- Using a variable with an inline expression in HTML. --> 
<p>The predicted annual total is: @( monthlyTotal * 12)</p>

<!--  Displaying the page URL with a variable. --> 
<p>The URL to this page is:  @myPath</p>

Hasil yang ditampilkan di browser:

Razor-Img9

Mengonversi dan menguji jenis data

Meskipun ASP.NET biasanya dapat menentukan jenis data secara otomatis, terkadang tidak bisa. Oleh karena itu, Anda mungkin perlu membantu ASP.NET dengan melakukan konversi eksplisit. Bahkan jika Anda tidak perlu mengonversi jenis, kadang-kadang sangat membantu untuk menguji untuk melihat jenis data apa yang mungkin Anda kerjakan.

Kasus yang paling umum adalah Anda harus mengonversi string ke jenis lain, seperti ke bilangan bulat atau tanggal. Contoh berikut menunjukkan kasus umum di mana Anda harus mengonversi string menjadi angka.

@Code
    Dim total = 0
    Dim totalMessage = ""
    if IsPost Then
        ' Retrieve the numbers that the user entered.
        Dim num1 = Request("text1")
        Dim num2 = Request("text2")
        ' Convert the entered strings into integers numbers and add.
        total = num1.AsInt() + num2.AsInt()
        totalMessage = "Total = " & total
    End If
End Code

Sebagai aturan, input pengguna datang kepada Anda sebagai string. Bahkan jika Anda telah meminta pengguna untuk memasukkan angka, dan bahkan jika mereka telah memasukkan digit, ketika input pengguna dikirimkan dan Anda membacanya dalam kode, data dalam format string. Oleh karena itu, Anda harus mengonversi string menjadi angka. Dalam contoh, jika Anda mencoba melakukan aritmatika pada nilai tanpa mengonversinya, hasil kesalahan berikut, karena ASP.NET tidak dapat menambahkan dua string:

Cannot implicitly convert type 'string' to 'int'.

Untuk mengonversi nilai menjadi bilangan bulat, Anda memanggil AsInt metode . Jika konversi berhasil, Anda kemudian dapat menambahkan angka.

Tabel berikut mencantumkan beberapa metode konversi dan pengujian umum untuk variabel.

Metode

Deskripsi

Contoh


AsInt(), IsInt()

Mengonversi string yang mewakili bilangan bulat (seperti "593") menjadi bilangan bulat.

Dim myIntNumber = 0
Dim myStringNum = "539"
If myStringNum.IsInt() Then
    myIntNumber = myStringNum.AsInt()
End If

AsBool(), IsBool()

Mengonversi string seperti "true" atau "false" menjadi jenis Boolean.

Dim myStringBool = "True"
Dim myVar = myStringBool.AsBool()

AsFloat(), IsFloat()

Mengonversi string yang memiliki nilai desimal seperti "1,3" atau "7,439" menjadi angka floating-point.

Dim myStringFloat = "41.432895"
Dim myFloatNum = myStringFloat.AsFloat()

AsDecimal(), IsDecimal()

Mengonversi string yang memiliki nilai desimal seperti "1,3" atau "7,439" menjadi angka desimal. (Dalam ASP.NET, angka desimal lebih tepat daripada angka floating-point.)

Dim myStringDec = "10317.425"
Dim myDecNum = myStringDec.AsDecimal()

AsDateTime(), IsDateTime()

Mengonversi string yang mewakili nilai tanggal dan waktu ke jenis ASP.NET DateTime .

Dim myDateString = "12/27/2012"
Dim newDate = myDateString.AsDateTime()

ToString()

Mengonversi jenis data lainnya menjadi string.

Dim num1 As Integer = 17
Dim num2 As Integer = 76

' myString is set to 1776
Dim myString as String = num1.ToString() & _
    num2.ToString()

Operator

Operator adalah kata kunci atau karakter yang memberi tahu ASP.NET jenis perintah apa yang harus dilakukan dalam ekspresi. Visual Basic mendukung banyak operator, tetapi Anda hanya perlu mengenali beberapa untuk mulai mengembangkan halaman web ASP.NET. Tabel berikut ini meringkas operator yang paling umum.

Operator

Deskripsi

Contoh


+ - * /

Operator matematika yang digunakan dalam ekspresi numerik.

@(5 + 13)

Dim netWorth = 150000
Dim newTotal = netWorth * 2
@(newTotal / 2)

=

Penugasan dan kesetaraan. Bergantung pada konteks, menetapkan nilai di sisi kanan pernyataan ke objek di sisi kiri, atau memeriksa nilai untuk kesetaraan.

Dim age = 17

Dim income = Request("AnnualIncome")

<>

Ketidaksetaraan. Mengembalikan True jika nilainya tidak sama.

Dim theNum = 13
If theNum <> 15 Then
    ' Do something.
End If

< > <= >=

Kurang dari, lebih besar dari, kurang dari atau sama dengan, dan lebih besar dari atau sama dengan.

If 2 < 3 Then
    ' Do something.
End If

Dim currentCount = 12
If currentCount >= 12 Then
    ' Do something.
End If

&

Perangkaian, yang digunakan untuk menggabungkan string.

' The displayed result is "abcdef".
@("abc" & "def")

+= -=

Operator kenaikan dan penurunan, yang menambahkan dan mengurangi 1 (masing-masing) dari variabel.

Dim theCount As Integer = 0
theCount += 1 ' Adds 1 to count

.

Dot. Digunakan untuk membedakan objek dan properti dan metodenya.

Dim myUrl = Request.Url
Dim count = Request("Count").AsInt()

()

Tanda Kurung. Digunakan untuk mengelompokkan ekspresi, untuk meneruskan parameter ke metode, dan untuk mengakses anggota array dan koleksi.

@(3 + 7)

@Request.MapPath(Request.FilePath)

Not

Tidak. Membalikkan nilai benar menjadi false dan sebaliknya. Biasanya digunakan sebagai cara singkat untuk menguji False (yaitu, untuk tidak True).

Dim taskCompleted As Boolean = False
' Processing.
If Not taskCompleted Then 
    ' Continue processing
End If

AndAlso OrElse

LOGIS AND dan OR, yang digunakan untuk menautkan kondisi bersama-sama.

Dim myTaskCompleted As Boolean = false
Dim totalCount As Integer = 0          
' Processing.
If (Not myTaskCompleted) AndAlso _
         totalCount < 12 Then 
    ' Continue processing.
End If

Bekerja dengan Jalur File dan Folder dalam Kode

Anda akan sering bekerja dengan jalur file dan folder dalam kode Anda. Berikut adalah contoh struktur folder fisik untuk situs web karena mungkin muncul di komputer pengembangan Anda:

C:\WebSites\MyWebSite default.cshtml datafile.txt \images Logo.jpg \styles Styles.css

Berikut adalah beberapa detail penting tentang URL dan jalur:

  • URL dimulai dengan nama domain (http://www.example.com) atau nama server (http://localhost, http://mycomputer).
  • URL sesuai dengan jalur fisik di komputer host. Misalnya, http://myserver mungkin sesuai dengan folder C:\websites\mywebsite di server.
  • Jalur virtual singkatan untuk mewakili jalur dalam kode tanpa harus menentukan jalur lengkap. Ini termasuk bagian URL yang mengikuti domain atau nama server. Saat menggunakan jalur virtual, Anda dapat memindahkan kode ke domain atau server yang berbeda tanpa harus memperbarui jalur.

Berikut adalah contoh untuk membantu Anda memahami perbedaannya:

URL Lengkap http://mycompanyserver/humanresources/CompanyPolicy.htm
Nama server mycompanyserver
Jalur virtual /humanresources/CompanyPolicy.htm
Jalur fisik C:\mywebsites\humanresources\CompanyPolicy.htm

Akar virtual adalah /, sama seperti akar drive C: Anda adalah . (Jalur folder virtual selalu menggunakan garis miring ke depan.) Jalur virtual folder tidak harus memiliki nama yang sama dengan folder fisik; itu bisa menjadi alias. (Pada server produksi, jalur virtual jarang cocok dengan jalur fisik yang tepat.)

Saat Anda bekerja dengan file dan folder dalam kode, terkadang Anda perlu mereferensikan jalur fisik dan terkadang jalur virtual, tergantung pada objek apa yang sedang Anda kerjakan. ASP.NET memberi Anda alat-alat ini untuk bekerja dengan jalur file dan folder dalam kode: Server.MapPath metode , serta ~ operator dan Href metode .

Mengonversi jalur virtual ke fisik: metode Server.MapPath

Metode ini Server.MapPath mengonversi jalur virtual (seperti /default.cshtml) ke jalur fisik absolut (seperti C:\WebSites\MyWebSiteFolder\default.cshtml). Anda menggunakan metode ini kapan saja Anda memerlukan jalur fisik yang lengkap. Contoh umumnya adalah saat Anda membaca atau menulis file teks atau file gambar di server web.

Anda biasanya tidak tahu jalur fisik absolut situs Anda di server situs hosting, sehingga metode ini dapat mengonversi jalur yang Anda tahu - jalur virtual - ke jalur yang sesuai di server untuk Anda. Anda meneruskan jalur virtual ke file atau folder ke metode , dan mengembalikan jalur fisik:

@Code
    Dim dataFilePath = "~/dataFile.txt"
End Code    

<!-- Displays a physical path C:\Websites\MyWebSite\datafile.txt  --> 
<p>@Server.MapPath(dataFilePath)</p>

Mereferensikan akar virtual: operator ~ dan metode Href

Dalam file .cshtml atau .vbhtml , Anda dapat mereferensikan jalur akar virtual menggunakan ~ operator . Ini sangat berguna karena Anda dapat memindahkan halaman di sekitar situs, dan tautan apa pun yang dikandungnya ke halaman lain tidak akan rusak. Ini juga berguna jika Anda pernah memindahkan situs web Anda ke lokasi yang berbeda. Berikut adalah beberapa contohnya:

@Code
    Dim myImagesFolder = "~/images"
    Dim myStyleSheet = "~/styles/StyleSheet.css"       
End Code

Jika situs web adalah http://myserver/myapp, berikut adalah bagaimana ASP.NET akan memperlakukan jalur ini ketika halaman berjalan:

  • myImagesFolder: http://myserver/myapp/images
  • myStyleSheet : http://myserver/myapp/styles/Stylesheet.css

(Anda tidak akan benar-benar melihat jalur ini sebagai nilai variabel, tetapi ASP.NET akan memperlakukan jalur seolah-olah itulah yang mereka.)

Anda dapat menggunakan ~ operator baik dalam kode server (seperti di atas) maupun dalam markup, seperti ini:

<!-- Examples of using the ~ operator in markup in ASP.NET Web Pages -->

<a href="~/Default">Home</a>
<img src="~/images/MyImages.png" />

Dalam markup, Anda menggunakan ~ operator untuk membuat jalur ke sumber daya seperti file gambar, halaman web lainnya, dan file CSS. Saat halaman berjalan, ASP.NET melihat melalui halaman (kode dan markup) dan menyelesaikan semua ~ referensi ke jalur yang sesuai.

Logika dan Perulangan Bersyarah

ASP.NET kode server memungkinkan Anda melakukan tugas berdasarkan kondisi dan menulis kode yang mengulangi pernyataan beberapa kali yaitu, kode yang menjalankan perulangan).

Kondisi pengujian

Untuk menguji kondisi sederhana, Anda menggunakan If...Then pernyataan , yang mengembalikan True atau False berdasarkan pengujian yang Anda tentukan:

@Code
    Dim showToday = True
    If showToday Then
        DateTime.Today
    End If
End Code

Kata If kunci memulai blok. Pengujian aktual (kondisi) mengikuti If kata kunci dan mengembalikan true atau false. Pernyataan If berakhir dengan Then. Pernyataan yang akan berjalan jika pengujian benar diapit oleh If dan End If. Pernyataan If dapat menyertakan Else blok yang menentukan pernyataan untuk dijalankan jika kondisinya salah:

@Code
    Dim showToday = False
    If showToday Then
        DateTime.Today
    Else
        @<text>Sorry!</text>
    End If
End Code

If Jika pernyataan memulai blok kode, Anda tidak perlu menggunakan pernyataan normal Code...End Code untuk menyertakan blok. Anda hanya dapat menambahkan @ ke blok , dan itu akan berfungsi. Pendekatan ini bekerja dengan If serta kata kunci pemrograman Visual Basic lainnya yang diikuti oleh blok kode, termasuk For, , For EachDo While, dll.

@If showToday Then
    DateTime.Today
Else
    @<text>Sorry!</text>
End If

Anda dapat menambahkan beberapa kondisi menggunakan satu atau beberapa ElseIf blok:

@Code
    Dim theBalance = 4.99
    If theBalance = 0 Then
        @<p>You have a zero balance.</p>
    ElseIf theBalance > 0 AndAlso theBalance <= 5 Then
        ' If the balance is above 0 but less than
        ' or equal to $5, display this message.
        @<p>Your balance of $@theBalance is very low.</p>
    Else
        ' For balances greater than $5, display balance.
        @<p>Your balance is: $@theBalance</p>
    End If    
End Code

Dalam contoh ini, jika kondisi pertama dalam If blok tidak benar, ElseIf kondisi diperiksa. Jika kondisi tersebut terpenuhi, pernyataan dalam ElseIf blok dijalankan. Jika tidak ada kondisi yang terpenuhi, pernyataan dalam Else blok dijalankan. Anda dapat menambahkan sejumlah ElseIf blok, lalu menutup dengan Else blok sebagai kondisi "yang lainnya".

Untuk menguji sejumlah besar kondisi, gunakan Select Case blok:

@Code
    Dim weekday = "Wednesday"
    Dim greeting = ""
    
    Select Case weekday
        Case "Monday"
            greeting = "Ok, it's a marvelous Monday."
        Case "Tuesday"
            greeting = "It's a tremendous Tuesday."
        Case "Wednesday"
            greeting = "Wild Wednesday is here!"
        Case Else
            greeting = "It's some other day, oh well."
    End Select
End Code
<p>Since it is @weekday, the message for today is: @greeting</p>

Nilai yang akan diuji ada dalam tanda kurung (dalam contoh, variabel hari kerja). Setiap pengujian individu menggunakan Case pernyataan yang mencantumkan nilai. Jika nilai Case pernyataan cocok dengan nilai pengujian, kode dalam Case blok tersebut dijalankan.

Hasil dari dua blok bersyar terakhir yang ditampilkan di browser:

Razor-Img10

Kode perulangan

Anda sering kali perlu menjalankan pernyataan yang sama berulang kali. Anda melakukan ini dengan mengulang. Misalnya, Anda sering menjalankan pernyataan yang sama untuk setiap item dalam kumpulan data. Jika Anda tahu persis berapa kali Anda ingin mengulang, Anda dapat menggunakan perulangan For . Perulangan semacam ini sangat berguna untuk menghitung atau menghitung mundur:

@For i = 10 To 20
    @<p>Item #: @i</p>
Next i

Perulangan dimulai dengan For kata kunci , diikuti oleh tiga elemen:

  • Segera setelah For pernyataan , Anda mendeklarasikan variabel penghitung (Anda tidak perlu menggunakan Dim) dan kemudian menunjukkan rentang, seperti dalam i = 10 to 20. Ini berarti variabel i akan mulai dihitung pada 10 dan melanjutkan hingga mencapai 20 (inklusif).
  • For Antara pernyataan dan Next adalah konten blok. Ini dapat berisi satu atau beberapa pernyataan kode yang dijalankan dengan setiap perulangan.
  • Pernyataan mengakhiri Next i perulangan. Ini menaikkan penghitung dan memulai iterasi perulangan berikutnya.

Baris kode antara For baris dan Next berisi kode yang berjalan untuk setiap iterasi perulangan. Markup membuat paragraf<p> (elemen) baru setiap kali dan menambahkan baris ke output, menampilkan nilai i (penghitung). Saat Anda menjalankan halaman ini, contoh membuat 11 baris yang menampilkan output, dengan teks di setiap baris yang menunjukkan nomor item.

Razor-Img11

Jika Anda bekerja dengan koleksi atau array, Anda sering menggunakan perulangan For Each . Koleksi adalah sekelompok objek serupa, dan perulangan For Each memungkinkan Anda melakukan tugas pada setiap item dalam koleksi. Jenis perulangan ini nyaman untuk koleksi, karena tidak seperti perulangan For , Anda tidak perlu menaikkan penghitung atau menetapkan batas. Sebaliknya, kode perulangan For Each hanya melanjutkan melalui koleksi sampai selesai.

Contoh ini mengembalikan item dalam Request.ServerVariables koleksi (yang berisi informasi tentang server web Anda). Ini menggunakan perulangan For Each untuk menampilkan nama setiap item dengan membuat elemen baru <li> dalam daftar berpoin HTML.

<ul>
@For Each myItem In Request.ServerVariables
    @<li>@myItem</li>
Next myItem
</ul>

Kata For Each kunci diikuti oleh variabel yang mewakili satu item dalam koleksi (dalam contoh, myItem), diikuti dengan In kata kunci, diikuti dengan koleksi yang ingin Anda ulangi. Dalam isi perulangan For Each , Anda dapat mengakses item saat ini menggunakan variabel yang Anda deklarasikan sebelumnya.

Razor-Img12

Untuk membuat perulangan tujuan yang lebih umum, gunakan Do While pernyataan :

@Code
    Dim countNum = 0
    Do While countNum < 50
        countNum += 1
        @<p>Line #@countNum: </p>
    Loop
End Code

Perulangan ini dimulai dengan Do While kata kunci, diikuti dengan kondisi, diikuti dengan blok untuk diulang. Perulangan biasanya bertambah (tambahkan ke) atau penurunan (kurangi dari) variabel atau objek yang digunakan untuk penghitungan. Dalam contoh, += operator menambahkan 1 ke nilai variabel setiap kali perulangan berjalan. (Untuk mengurangi variabel dalam perulangan yang menghitung mundur, Anda akan menggunakan operator -=penurunan .)

Objek dan Koleksi

Hampir semua yang ada di situs web ASP.NET adalah objek, termasuk halaman web itu sendiri. Bagian ini membahas beberapa objek penting yang akan sering Anda kerjakan dalam kode Anda.

Objek halaman

Objek paling dasar dalam ASP.NET adalah halaman. Anda dapat mengakses properti objek halaman secara langsung tanpa objek yang memenuhi syarat. Kode berikut mendapatkan jalur file halaman, menggunakan Request objek halaman:

@Code
    Dim path = Request.FilePath
End Code

Anda dapat menggunakan properti Page objek untuk mendapatkan banyak informasi, seperti:

  • Request. Seperti yang telah Anda lihat, ini adalah kumpulan informasi tentang permintaan saat ini, termasuk jenis browser apa yang membuat permintaan, URL halaman, identitas pengguna, dll.

  • Response. Ini adalah kumpulan informasi tentang respons (halaman) yang akan dikirim ke browser ketika kode server telah selesai berjalan. Misalnya, Anda dapat menggunakan properti ini untuk menulis informasi ke dalam respons.

    @Code
        ' Access the page's Request object to retrieve the URL.
        Dim pageUrl = Request.Url
    End Code
        <a href="@pageUrl">My page</a>
    

Objek koleksi (array dan kamus)

Koleksi adalah sekelompok objek dengan jenis yang sama, seperti kumpulan Customer objek dari database. ASP.NET berisi banyak koleksi bawaan, seperti Request.Files koleksi.

Anda akan sering bekerja dengan data dalam koleksi. Dua jenis koleksi umum adalah array dan kamus. Array berguna saat Anda ingin menyimpan koleksi item serupa tetapi tidak ingin membuat variabel terpisah untuk menahan setiap item:

<h3>Team Members</h3>
@Code
    Dim teamMembers() As String = {"Matt", "Joanne", "Robert", "Nancy"}
    For Each name In teamMembers
        @<p>@name</p>
    Next name
End Code

Dengan array, Anda mendeklarasikan jenis data tertentu, seperti String, , Integeratau DateTime. Untuk menunjukkan bahwa variabel dapat berisi array, Anda menambahkan tanda kurung ke nama variabel dalam deklarasi (seperti Dim myVar() As String). Anda dapat mengakses item dalam array menggunakan posisinya (indeks) atau dengan menggunakan For Each pernyataan . Indeks array berbasis nol — yaitu, item pertama berada di posisi 0, item kedua berada di posisi 1, dan sebagainya.

@Code
    Dim teamMembers() As String = {"Matt", "Joanne", "Robert", "Nancy"}
    @<p>The number of names in the teamMembers array: @teamMembers.Length </p>
    @<p>Robert is now in position: @Array.IndexOf(teamMembers, "Robert")</p>
    @<p>The array item at position 2 (zero-based) is @teamMembers(2)</p>
    @<h3>Current order of team members in the list</h3>
    For Each name In teamMembers
        @<p>@name</p>
    Next name
    @<h3>Reversed order of team members in the list</h3>
    Array.Reverse(teamMembers)
    For Each reversedItem In teamMembers
        @<p>@reversedItem</p>
    Next reversedItem
End Code

Anda dapat menentukan jumlah item dalam array dengan mendapatkan propertinya Length . Untuk mendapatkan posisi item tertentu dalam array (yaitu, untuk mencari array), gunakan Array.IndexOf metode . Anda juga dapat melakukan hal-hal seperti membalikkan konten array ( Array.Reverse metode ) atau mengurutkan konten ( Array.Sort metode ).

Output kode array string yang ditampilkan di browser:

Razor-Img13

Kamus adalah kumpulan pasangan kunci/nilai, tempat Anda memberikan kunci (atau nama) untuk mengatur atau mengambil nilai yang sesuai:

@Code
    Dim myScores = New Dictionary(Of String, Integer)()
    myScores.Add("test1", 71)
    myScores.Add("test2", 82)
    myScores.Add("test3", 100)
    myScores.Add("test4", 59)
End Code
<p>My score on test 3 is: @myScores("test3")%</p>
@Code 
    myScores("test4") = 79
End Code
<p>My corrected score on test 4 is: @myScores("test4")%</p>

Untuk membuat kamus, Anda menggunakan New kata kunci untuk menunjukkan bahwa Anda membuat objek baru Dictionary . Anda dapat menetapkan kamus ke variabel menggunakan Dim kata kunci . Anda menunjukkan jenis data item dalam kamus menggunakan tanda kurung ( ( ) ). Di akhir deklarasi, Anda harus menambahkan sepasang tanda kurung lain, karena ini sebenarnya adalah metode yang membuat kamus baru.

Untuk menambahkan item ke kamus, Anda dapat memanggil Add metode variabel kamus (myScores dalam hal ini), lalu menentukan kunci dan nilai. Atau, Anda dapat menggunakan tanda kurung untuk menunjukkan kunci dan melakukan penugasan sederhana, seperti dalam contoh berikut:

@Code
    myScores("test4") = 79
End Code

Untuk mendapatkan nilai dari kamus, Anda menentukan kunci dalam tanda kurung:

@myScores("test4")

Metode Panggilan dengan Parameter

Seperti yang Anda lihat sebelumnya dalam artikel ini, objek yang Anda programkan memiliki metode . Misalnya, Database objek mungkin memiliki Database.Connect metode . Banyak metode juga memiliki satu atau beberapa parameter. Parameter adalah nilai yang Anda berikan ke metode untuk mengaktifkan metode untuk menyelesaikan tugasnya. Misalnya, lihat deklarasi untuk metode , Request.MapPath yang mengambil tiga parameter:

Public Overridable Function MapPath (virtualPath As String, _
    baseVirtualDir As String, _
    allowCrossAppMapping As Boolean)

Metode ini mengembalikan jalur fisik pada server yang sesuai dengan jalur virtual tertentu. Tiga parameter untuk metode ini adalah virtualPath, , baseVirtualDirdan allowCrossAppMapping. (Perhatikan bahwa dalam deklarasi, parameter dicantumkan dengan jenis data yang akan mereka terima.) Saat Anda memanggil metode ini, Anda harus menyediakan nilai untuk ketiga parameter.

Saat Anda menggunakan Visual Basic dengan sintaks Razor, Anda memiliki dua opsi untuk meneruskan parameter ke metode: parameter posisi atau parameter bernama. Untuk memanggil metode menggunakan parameter posisi, Anda meneruskan parameter dalam urutan ketat yang ditentukan dalam deklarasi metode. (Anda biasanya akan mengetahui urutan ini dengan membaca dokumentasi untuk metode .) Anda harus mengikuti urutan, dan Anda tidak dapat melewati salah satu parameter — jika perlu, Anda meneruskan string kosong ("") atau null untuk parameter posisi yang tidak memiliki nilai.

Contoh berikut mengasumsikan Anda memiliki folder bernama skrip di situs web Anda. Kode memanggil Request.MapPath metode dan meneruskan nilai untuk tiga parameter dalam urutan yang benar. Kemudian menampilkan jalur yang dipetakan yang dihasilkan.

@Code
    ' Pass parameters to a method using positional parameters.
    Dim myPathPositional = Request.MapPath("/scripts", "/", true)
End Code
<p>@myPathPositional</p>

Ketika ada banyak parameter untuk metode , Anda dapat menjaga kode Anda lebih bersih dan lebih mudah dibaca dengan menggunakan parameter bernama. Untuk memanggil metode menggunakan parameter bernama, tentukan nama parameter diikuti lalu := berikan nilainya. Keuntungan dari parameter bernama adalah Anda dapat menambahkannya dalam urutan apa pun yang Anda inginkan. (Kerugiannya adalah bahwa panggilan metode tidak sepadat.)

Contoh berikut memanggil metode yang sama seperti di atas, tetapi menggunakan parameter bernama untuk menyediakan nilai:

@Code
    ' Pass parameters to a method using named parameters.
    Dim myPathNamed = Request.MapPath(baseVirtualDir:= "/", allowCrossAppMapping:= true, virtualPath:= "/scripts")
End Code
<p>@myPathNamed</p>

Seperti yang Anda lihat, parameter diteruskan dalam urutan yang berbeda. Namun, jika Anda menjalankan contoh sebelumnya dan contoh ini, mereka akan mengembalikan nilai yang sama.

Menangani Kesalahan

pernyataan Try-Catch

Anda akan sering memiliki pernyataan dalam kode Anda yang mungkin gagal karena alasan di luar kontrol Anda. Contohnya:

  • Jika kode Anda mencoba membuka, membuat, membaca, atau menulis file, semua jenis kesalahan mungkin terjadi. File yang Anda inginkan mungkin tidak ada, mungkin dikunci, kode mungkin tidak memiliki izin, dan sebagainya.
  • Demikian pula, jika kode Anda mencoba memperbarui rekaman dalam database, mungkin ada masalah izin, koneksi ke database mungkin terputus, data yang akan disimpan mungkin tidak valid, dan sebagainya.

Dalam istilah pemrograman, situasi ini disebut pengecualian. Jika kode Anda mengalami pengecualian, kode akan menghasilkan (melemparkan) pesan kesalahan yang paling mengganggu pengguna.

Razor-Img14

Dalam situasi di mana kode Anda mungkin mengalami pengecualian, dan untuk menghindari pesan kesalahan jenis ini, Anda dapat menggunakan Try/Catch pernyataan. Try Dalam pernyataan , Anda menjalankan kode yang Anda periksa. Dalam satu atau beberapa Catch pernyataan, Anda dapat mencari kesalahan tertentu (jenis pengecualian tertentu) yang mungkin telah terjadi. Anda dapat menyertakan pernyataan sebanyak Catch yang Anda butuhkan untuk mencari kesalahan yang Anda antisipasi.

Catatan

Kami menyarankan agar Anda menghindari penggunaan Response.Redirect metode dalam Try/Catch pernyataan, karena dapat menyebabkan pengecualian di halaman Anda.

Contoh berikut menunjukkan halaman yang membuat file teks pada permintaan pertama lalu menampilkan tombol yang memungkinkan pengguna membuka file. Contoh sengaja menggunakan nama file yang buruk sehingga akan menyebabkan pengecualian. Kode ini mencakup Catch pernyataan untuk dua kemungkinan pengecualian: FileNotFoundException, yang terjadi jika nama file buruk, dan DirectoryNotFoundException, yang terjadi jika ASP.NET bahkan tidak dapat menemukan folder. (Anda dapat membatalkan komentar pernyataan dalam contoh untuk melihat bagaimana ia berjalan ketika semuanya bekerja dengan baik.)

Jika kode Anda tidak menangani pengecualian, Anda akan melihat halaman kesalahan seperti cuplikan layar sebelumnya. Namun, bagian ini Try/Catch membantu mencegah pengguna melihat jenis kesalahan ini.

@Code
    Dim dataFilePath = "~/dataFile.txt"
    Dim fileContents = ""
    Dim physicalPath = Server.MapPath(dataFilePath)
    Dim userMessage = "Hello world, the time is " + DateTime.Now
    Dim userErrMsg = ""
    Dim errMsg = ""
    
    If IsPost Then
        ' When the user clicks the "Open File" button and posts
        ' the page, try to open the file.
        Try
            ' This code fails because of faulty path to the file.
            fileContents = File.ReadAllText("c:\batafile.txt")
            
            ' This code works. To eliminate error on page, 
            ' comment the above line of code and uncomment this one.
            ' fileContents = File.ReadAllText(physicalPath)
            
        Catch ex As FileNotFoundException
            ' You can use the exception object for debugging, logging, etc.
            errMsg = ex.Message
            ' Create a friendly error message for users.
            userErrMsg = "The file could not be opened, please contact " _
                & "your system administrator."
                
        Catch ex As DirectoryNotFoundException
            ' Similar to previous exception.
            errMsg = ex.Message
            userErrMsg = "The file could not be opened, please contact " _
                & "your system administrator."
        End Try
    Else
        ' The first time the page is requested, create the text file.
        File.WriteAllText(physicalPath, userMessage)
    End If
End Code
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>Try-Catch Statements</title>
    </head>
    <body>  
    <form method="POST" action="" >
      <input type="Submit" name="Submit" value="Open File"/>
    </form>
    
    <p>@fileContents</p>
    <p>@userErrMsg</p>
    
    </body>
</html>

Sumber Daya Tambahan

Dokumentasi Rujukan