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:
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:
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:
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:
6. Kode Visual Basic tidak peka huruf besar/kecil
Bahasa Visual Basic tidak peka huruf besar/kecil. Kata kunci pemrograman (seperti Dim
, , If
dan 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:
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:
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):
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.
Di editor Anda, buat file baru dan beri nama AddNumbers.vbhtml.
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 yangtotalMessage
disematkan di dekat bagian bawah. - Blok di bagian atas halaman diapit di
Code...End Code
. - Variabel
total
, ,num1
num2
, dantotalMessage
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. MetodeAsInt
pada setiap variabel mengonversi string yang dimasukkan oleh pengguna menjadi bilangan bulat (bilangan bulat) yang dapat ditambahkan. - Tag
<form>
menyertakanmethod="post"
atribut . Ini menentukan bahwa ketika pengguna mengklik Tambahkan, halaman akan dikirim ke server menggunakan metode HTTP POST. Saat halaman dikirimkan, kodeIf IsPost
mengevaluasi ke true dan kode bersyariah berjalan, menampilkan hasil penambahan angka.
- Karakter
Simpan halaman dan jalankan di browser. (Pastikan halaman dipilih di ruang kerja File sebelum Anda menjalankannya.) Masukkan dua bilangan bujur, lalu klik tombol Tambahkan .
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:
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 Each
Do 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:
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 menggunakanDim
) dan kemudian menunjukkan rentang, seperti dalami = 10 to 20
. Ini berarti variabeli
akan mulai dihitung pada 10 dan melanjutkan hingga mencapai 20 (inklusif). For
Antara pernyataan danNext
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.
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.
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
, , Integer
atau 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:
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
, , baseVirtualDir
dan 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.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk