Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Microsoft
Pelajari cara menambahkan tindakan baru ke pengontrol MVC ASP.NET. Pelajari tentang persyaratan metode untuk menjadi tindakan.
Tujuan tutorial ini adalah untuk menjelaskan bagaimana Anda dapat membuat tindakan pengontrol baru. Anda mempelajari tentang persyaratan metode tindakan. Anda juga mempelajari cara mencegah metode diekspos sebagai tindakan.
Menambahkan Tindakan ke Pengontrol
Anda menambahkan tindakan baru ke pengontrol dengan menambahkan metode baru ke pengontrol. Misalnya, pengontrol di Daftar 1 berisi tindakan bernama Index() dan tindakan bernama SayHello(). Kedua metode diekspos sebagai tindakan.
Daftar 1 - Controllers\HomeController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public string SayHello()
{
return "Hello!";
}
}
}
Agar dapat diekspos ke alam semesta sebagai tindakan, metode harus memenuhi persyaratan tertentu:
- Metode harus publik.
- Metode tidak boleh berupa metode statis.
- Metode tidak boleh berupa metode ekstensi.
- Metode tidak boleh menjadi konstruktor, getter, atau setter.
- Metode tidak boleh memiliki jenis generik terbuka.
- Metode ini bukan metode kelas dasar pengontrol.
- Metode tidak boleh berisi parameter ref atau out .
Perhatikan bahwa tidak ada batasan pada jenis pengembalian tindakan pengontrol. Tindakan pengontrol dapat mengembalikan string, DateTime, instans kelas Acak, atau batal. Kerangka kerja MVC ASP.NET akan mengonversi jenis pengembalian apa pun yang bukan merupakan hasil tindakan menjadi string dan merender string ke browser.
Ketika Anda menambahkan metode apa pun yang tidak melanggar persyaratan ini ke pengontrol, metode ini diekspos sebagai tindakan pengontrol. Hati-hati di sini. Tindakan pengontrol dapat dipanggil oleh siapa pun yang tersambung ke Internet. Jangan, misalnya, membuat tindakan pengontrol DeleteMyWebsite().
Mencegah Metode Publik Dipanggil
Jika Anda perlu membuat metode publik di kelas pengontrol dan Anda tidak ingin mengekspos metode sebagai tindakan pengontrol maka Anda dapat mencegah metode dipanggil dengan menggunakan atribut [NonAction]. Misalnya, pengontrol di Listing 2 berisi metode publik bernama CompanySecrets() yang dihiasi dengan atribut [NonAction].
Daftar 2 - Controllers\WorkController.cs
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
public class WorkController : Controller
{
[NonAction]
public string CompanySecrets()
{
return "This information is secret.";
}
}
}
Jika Anda mencoba memanggil tindakan pengontrol CompanySecrets() dengan mengetik /Work/CompanySecrets ke bilah alamat browser Anda, maka Anda akan mendapatkan pesan kesalahan di Gambar 1.
Gambar 01: Memanggil metode NonAction (Klik untuk melihat gambar ukuran penuh)