Recent Posts

ASP.Net MVC : Controller Part 2

Selain itu, jika Anda memodifikasi kode untuk menghapus parameter ketiga dari metode File, maka metode tindakannya akan, alih-alih mendownload gambar, tampilkan gambar di browser, seperti yang ditunjukkan pada Gambar 4-2. Kode yang dimodifikasi ditunjukkan pada Listing 4-6.


Gambar 4-2. Menampilkan gambar menggunakan FileResult

Listing 4-6. Menampilkan Gambar Menggunakan FileResult

 public FileResult DownloadPetPicture()
{
     var name = (string)RouteData.Values["id"];
     var picture = "/Content/Uploads/" + name + ".jpg";
     var contentType = "image/jpg";
     return File(picture, contentType);
}


Menggunakan HttpStatusCodeResult

Hasil tindakan HttpStatusCodeResult berguna saat mengenali bahwa area aplikasi tertentu dapat diakses hanya untuk pengguna yang berwenang. Dengan sistem seperti Forms Authentication, Anda dapat menerapkan tingkat akses tertentu kontrol. Misalnya, bayangkan Anda memiliki aplikasi perbankan yang memungkinkan karyawan melihat laporan. Anda ingin tertentu laporan dapat diakses oleh manajer tapi bukan orang-orang di tim layanan pelanggan. Metode tindakan Anda bisa mengecek untuk tingkat akses ini dan kemudian, jika menemukan bahwa pengguna adalah anggota tim layanan pelanggan, berikan kesalahan bahwa hasil redirection ke halaman login, seperti yang ditunjukkan pada Gambar 4-3.

Gambar 4-3. Mengidentifikasi akses yang tidak sah dan kemudian mengarahkan ulang ke halaman login

Listing 4-7. Menerbitkan Kesalahan 401

public HttpStatusCodeResult UnauthorizedError()
{
    return new HttpUnauthorizedResult("Custom Unauthorized Error");
}
 


Tip :
Browser modern seperti Chrome, Firefox, dan Internet Explorer menyertakan alat (juga dikenal sebagai alat pengembang) yang memungkinkan Anda melihat aspek-aspek yang berbeda dari halaman yang ditampilkan, termasuk lalu lintas jaringan yang dihasilkan oleh permintaan. Di Chrome, misalnya, jika Anda menekan F12, jendela alat pengembang akan terbuka.

Pada Gambar 4-3 Anda dapat melihat di tab Network dari alat pengembang yang mengajukan permintaan ke / Pet / UnauthorizedError. Kemudian ini diidentifikasi dengan benar sebagai permintaan ke halaman yang dibatasi (dijamin). Akhirnya, aplikasi tersebut mengeluarkan sebuah Respons HttpUnauthorizedResult, yang mengakibatkan pengalihan ke halaman login.


Menggunakan HttpNotFoundResult

Dalam beberapa kasus, ada baiknya Anda dengan sengaja mengembalikan kesalahan HTTP "tidak ditemukan". Misalnya, perhatikan search engine optimasi (SEO). Saat berhadapan dengan konten dinamis, seperti toko online, jika produk sudah tidak tersedia lagi, Anda mungkin ingin menghasilkan respons yang tidak ditemukan sehingga saat perayap mesin pencari (Google, misalnya) memeriksa situs web, mereka akan memperbarui indeks mereka untuk mengecualikan halaman usang.

Listing 4-8 menunjukkan bagaimana menghasilkan respon yang tidak ditemukan (kode HTTP 404) dengan metode tindakan.


Listing 4-8 Menerbitkan Kesalahan 404 dengan Hasil Tindakan


public ActionResult NotFoundError()
{
     return HttpNotFound("Nothing here...");
}


Ringkasan

Dalam bab ini Anda telah belajar tentang bagian pertama dari tiga bagian utama ASP.NET MVC, pengendali. Controller adalah kelas yang menangani permintaan pengguna Permintaan dikirim menggunakan protokol HTTP dan ditafsirkan dengan pola yang didefinisikan di mesin routing melalui kumpulan rute. Kelas-kelas ini mewarisi dari kelas System.Web.Mvc.Controller

Metode di dalam kontroler disebut action methods karena mereka mengembalikan objek tipe ActionResult. Ada berbagai jenis objek ActionResult. Yang paling umum adalah objek ViewResult yang digunakan untuk mengembalikan HTML ke browser Yang lainnya adalah FileResult, yang digunakan untuk mengembalikan konten biner (seperti saat mendownload file), dan ContentResult, yang digunakan untuk mengembalikan semua jenis konten (seperti teks atau XML). Ada juga beberapa benda itu dapat digunakan untuk mengembalikan kode HTTP tertentu, seperti HttpNotFoundResult.

Pada bab selanjutnya kita akan mempelajari pandangan secara lebih rinci, termasuk bagaimana kita bisa menggunakan beberapa fitur di dalamnya pengendali mengirim informasi ke tampilan sehingga mereka membuat HTML dengan benar.

 

Tidak ada komentar:

Posting Komentar