asp.net mvc URL.Action() मार्ग मान सहित




asp.net-mvc asp.net-mvc-4 (2)

मेरे पास एएसपी.NET एमवीसी 4 ऐप है और मैं इस तरह यूआरएल.एक्शन सहायक का उपयोग कर रहा हूं: @Url.Action("Information", "Admin")

यह पृष्ठ एक नया जोड़ने और व्यवस्थापक प्रोफ़ाइल को संपादित करने के लिए उपयोग किया जाता है। यूआरएल निम्नानुसार हैं:

 Adding a new:       http://localhost:4935/Admin/Information
 Editing Existing:   http://localhost:4935/Admin/Information/5 <==Admin ID

जब मैं साइट के Editing Existing अनुभाग में हूं और निर्णय लेता हूं कि मैं एक नया व्यवस्थापक जोड़ना चाहता हूं तो मैं निम्न लिंक पर क्लिक करता हूं:

 <a href="@Url.Action("Information", "Admin")">Add an Admin</a>

समस्या यह है कि उपर्युक्त लिंक वास्तव में http://localhost:4935/Admin/Information/5 । यह तब होता है जब मैं उस पृष्ठ में एक मौजूदा व्यवस्थापक को संपादित करता हूं। साइट पर कहीं और यह http://localhost:4935/Admin/Information लिए सही ढंग से लिंक करता है

क्या किसी और ने इसे देखा है?

अद्यतन करें:

RouteConfig:

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );    

आप इस फ़ॉर्म में भी उपयोग कर सकते हैं:

<a href="@Url.Action("Information", "Admin", null)"> Admin</a>


वर्तमान रूटिंग स्कीमा के आधार पर उत्पन्न एमवीसी में आउटगोइंग यूआरएल।

क्योंकि आपकी सूचना कार्रवाई विधि को आईडी पैरामीटर की आवश्यकता होती है, और आपके रूट संग्रह में आपके वर्तमान अनुरोधित यूआरएल (/ व्यवस्थापक / सूचना / 5) की आईडी है, आईडी पैरामीटर स्वचालित रूप से मौजूदा रूट संग्रह मानों से प्राप्त होता है।

इस समस्या को हल करने के लिए आपको UrlParameter का उपयोग करना चाहिए। वैकल्पिक:

 <a href="@Url.Action("Information", "Admin", new { id = UrlParameter.Optional })">Add an Admin</a>




html-helper