Kita buka project yang telah kita buat pada tutorial sebelumnya. kemudian hal yang kita lakukan adalah membaca basmallah, setelah itu kita tambahkan class baru pada folder models dengan nama GuestBookEntry sebagai model yang akan kita pakai.
Pada class GuestBookEntry kita tulis (sory, template blogger yang baru ga ngedukung syntaks highlighter )
Menjadi
Code Lengkap
Jangan lupa merubah code Label menjadi LabelFor dsb agar kita langsung merender dari model secara langsung. dan jangan lupa Meng-Instance GroupEntry Pada Action Index kemudian mengirimkanya ke halaman index
Kemudian kita build ulang dan kita jalankan lagi, hasilnya akan sama seperti pada tutorial pertama.
Bisa kan...
Kalau kita lihat pada halaman Sign, url tersebut masih kita lihat. Hal ini dikarenakan kita meng-Hard Code url, apabila kita merubah struktur url akan menyebabkan break. Kemudian url tersebut masih tertulis sign padahal kita mendirect ke halaman ThankYou pada controller, hal ini disebabkan karena kita tidak redirect ke sebuah success page, tetapi hanya merender. Kemudian apabila kita refresh halaman, hal ini akan menyebabkamkita memasukan data kembali, yang menyebabkan data dimasukan 2 kali.
Untuk memecahkan masalah tersebut kita ganti code pada halaman index dengan menggunakan <%Html.BeginForm()%> menjadi seperti ini
kemudian coba kita jalankan.
Setelah kita jalankan kita tidak akan bisa memasukan data tersebut, aplikasi hanya kembali ke halaman index. untuk mengatasinya kita tambahkan action seperti ini
Cara lain yang bisa kita gunakan adalah dengan merubah nama action Sign menjadi index, sehingga kita tidak perlu menambahkan action pada BeginForm.
Kita build dan kita jalankan lagi.
Untuk menghilangkan url sign, kita tambahkan [HttpPost] pada action Index yang kedua
Setelah dijalankan maka url berubah menjadi
Apakah telah selesai? apakah aplikasi kita sudah ok? belum, aplikasi kita masih mengirimkan data ketika di refresh, cara untuk mengatasi hal tersebut adalah dengan:
1. Mem-Post data ke sebuah action
2. Redirect user ke sebuah action yang berbeda
3. User browser mendapatkan issue sebuah Get untuk sebuah action yang baru
Kita rubah GuestBookController kita menjadi seperti ini
Kemudian kita build dan kita jalankan lagi. Maka apabila kita submit maka url akan di-direct ke halaman ThankYou bukan sign lagi,
dan apabila kita refresh maka akan kembali ke halaman awal
Sekian untuk post kali ini, sampai jumpa di Post selanjutnya, Semoga Bermanfaat.
public class SplitString { public class GuestBookEntry { public string Name { get; set; } public string Email { get; set; } public string Comments { get; set; } }setelah itu kita ubah inherits pada halaman indeks (letaknya paling atas code indeks) yang tadinya berupa
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>;
Menjadi
Code Lengkap
setelah di import model (perhatikan bagian yang diberi highlight) |
Kemudian kita build ulang dan kita jalankan lagi, hasilnya akan sama seperti pada tutorial pertama.
Bisa kan...
Kalau kita lihat pada halaman Sign, url tersebut masih kita lihat. Hal ini dikarenakan kita meng-Hard Code url, apabila kita merubah struktur url akan menyebabkan break. Kemudian url tersebut masih tertulis sign padahal kita mendirect ke halaman ThankYou pada controller, hal ini disebabkan karena kita tidak redirect ke sebuah success page, tetapi hanya merender. Kemudian apabila kita refresh halaman, hal ini akan menyebabkamkita memasukan data kembali, yang menyebabkan data dimasukan 2 kali.
kalo direfresh |
kemudian coba kita jalankan.
Setelah kita jalankan kita tidak akan bisa memasukan data tersebut, aplikasi hanya kembali ke halaman index. untuk mengatasinya kita tambahkan action seperti ini
Cara lain yang bisa kita gunakan adalah dengan merubah nama action Sign menjadi index, sehingga kita tidak perlu menambahkan action pada BeginForm.
Kita build dan kita jalankan lagi.
Untuk menghilangkan url sign, kita tambahkan [HttpPost] pada action Index yang kedua
Setelah dijalankan maka url berubah menjadi
Apakah telah selesai? apakah aplikasi kita sudah ok? belum, aplikasi kita masih mengirimkan data ketika di refresh, cara untuk mengatasi hal tersebut adalah dengan:
1. Mem-Post data ke sebuah action
2. Redirect user ke sebuah action yang berbeda
3. User browser mendapatkan issue sebuah Get untuk sebuah action yang baru
Kita rubah GuestBookController kita menjadi seperti ini
Kemudian kita build dan kita jalankan lagi. Maka apabila kita submit maka url akan di-direct ke halaman ThankYou bukan sign lagi,
dan apabila kita refresh maka akan kembali ke halaman awal
kembali ke halaman awal |
Sekian untuk post kali ini, sampai jumpa di Post selanjutnya, Semoga Bermanfaat.
3 komentar :
koq, saya tidak berhasil ya
errornya :
Compiler Error Message: CS0246: The type or namespace name 'Blog' could not be found (are you missing a using directive or an assembly reference?)
waktu masukin urlnya --> http://localhost:52916/GuestBook
tapi kalo urlnya yg ini berhasil/tanpa error --> http://localhost:52916/GuestBook/Sign
cuma ga ada namanya aja
bisa minta code nya?
nanti saya periksa
@anonim atas 12 Mei 2013 19.39
ternayat namespacenya gak sesuai aka gak nyambung dari tutorial sebelumhya, ditutorial ini udab berubah namespace di model dan controllernya mesti ganti,
kalau mau trace coba langsung buka tutor ke 4 nya download source code nya trace dari situ aja
Posting Komentar