ASP.NET MVC कंट्रोलर को एक्शनलिंक में एक आईडी दे रहा है


98

मैं अपने नियंत्रक में html.ActionLink में जो आईडी भेज रहा हूँ, उसे पुनः प्राप्त करने के लिए नहीं देख सकता, यहाँ वही है जो मैं करने की कोशिश कर रहा हूँ

<li>
    <%= Html.ActionLink("Modify Villa", "Modify", "Villa", new { @id = "1" })%></li>


    public ActionResult Modify(string ID)
    {

        ViewData["Title"] =ID;
        return View();
    }

यही एक ट्यूटोरियल है जिसकी मैंने सिफारिश की थी, लेकिन यह काम नहीं कर रहा है, यह भी डाल रहा है? URL के अंत में लंबाई = 5!

अग्रिम में धन्यवाद!

संपादित करें: यहां वह मार्ग है जिसका मैं उपयोग कर रहा हूं, यह डिफ़ॉल्ट है

        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );

ऐसा लगता है कि किसी ने नीचे दिए गए दो सुझावों को अस्वीकार कर दिया है, लेकिन उनके समाधान को पोस्ट नहीं किया है!

जवाबों:


203

ऐसा नहीं लगता है कि आप ActionLink के सही अधिभार का उपयोग कर रहे हैं। इसे इस्तेमाल करे:-

<%=Html.ActionLink("Modify Villa", "Modify", new {id = "1"})%>

यह मानता है कि आपका दृश्य / दृश्य / विला फ़ोल्डर के अंतर्गत है। यदि नहीं, तो मुझे संदेह है कि आपको आवश्यकता है: -

<%=Html.ActionLink("Modify Villa", "Modify", "Villa", new {id = "1"}, null)%>

4
अच्छी कॉल - समस्या यह थी कि उस फ़ंक्शन के पहले अधिभार ने चौथे पैरामीटर के रूप में "HtmlAttributes" लिया। इसलिए ", अशक्त" जोड़ने से कंपाइलर को रूट पैरामीटर के रूप में आपकी इनलाइन ऑब्जेक्ट का उपयोग करने के लिए मजबूर होना पड़ा।
टिमोथी खोरी

26

एमवीसी 4 में आप एक दृश्य से दूसरे नियंत्रक को आईडी या प्राथमिक कुंजी के माध्यम से लिंक कर सकते हैं

@Html.ActionLink("Select", "Create", "StudentApplication", new { id=item.PersonId }, null) 

12

आईडी से पहले @ मत डालो

new { id = "1" }

फ्रेमवर्क इसे "ट्रांसलेट" करता है? लेन्चिंग जब पैरामीटर / रूट में कोई मिसमैच होता है



1

आईडी के साथ काम करेंगे @ सामने साइन के भी , लेकिन हमें उसके बाद एक पैरामीटर जोड़ना होगा। अर्थात्null

हमशक्ल:

@Html.ActionLink("Label Name", "Name_Of_Page_To_Redirect", "Controller", new {@id="Id_Value"}, null)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.