menerima kesalahan 404 saat mencoba memposting ke pengontrol

Saya mencoba memanggil metode pengontrol saya dengan meneruskan 2 parameter tetapi tindakan pengontrol tidak pernah tercapai dan kesalahan 404 dikembalikan.

setelah melihat pertanyaan serupa lainnya, saya telah mencoba memformat ulang tautan tindakan dan juga mencoba menggunakan @html.aksi, memastikan bahwa itu adalah HttpGet daripada HttpPost dan jelas membuat metode tindakan benar-benar ada di pengontrol.

Hasil tindakan:

     @Html.ActionLink(
                   linkText: item.FileName,
                   actionName: "GetStatement",
                   controllerName: "Statements",
                   routeValues: new { id = item.Id, entityCode = 
    item.EntityCode },
                   htmlAttributes: null)

Metode pengontrol

public class StatementsController : Controller
    {
        [HttpGet]
        public ActionResult GetStatement(int id, int entityCode)
        {
           //go to repository and get statement
        }
    }

Saya juga tidak yakin apakah URL terkait diformat dengan benar: Statments/GetStatement/1234?entityCode=111


person CodeChunky    schedule 12.10.2019    source sumber


Jawaban (1)


Silakan periksa yang ini, Anda perlu mengubah beberapa bagian kecil kode.

Di halaman cshtml

 @Html.ActionLink(
                   linkText: item.FileName,
                   actionName: "GetStatement",
                   controllerName: "Statements",
                   routeValues: new { itemid = item.Id, entityCode = 
    item.EntityCode },
                   htmlAttributes: null)

Kode pengontrol

public class StatementsController : Controller
    {
        [HttpGet]
        public ActionResult GetStatement(int itemid, int entityCode)
        {
           //go to repository and get statement
        }
    }

Catatan: ketika Anda memasukkan "Id" dalam tindakan pengontrol maka secara otomatis merutekan konversi dalam contoh di bawah ini

public ActionResult HandleException(int id)
        {
            // id mentioned in **RouteConfig** file that's way URL automatic mapped
        }

Lihat file RouteConfig

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {                
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }            
    }

Gambar

person jishan siddique    schedule 12.10.2019