2011-11-28 13 views
23

क्या इस एचटीएमएल में कुछ गड़बड़ है? मैं "CreateParts" दृश्य पर नेविगेट करने के लिए मास्टरपेज में एक लिंक रखना चाहता हूं। मेरे पास 'CreateParts' एक्शन है जिसमें नियंत्रक 'पार्टलिस्ट' में पैरामीटर पैरेंटपार्ट आईडी है। जब मैं SiteMaster में मेनू में 'नया बनाएँ भाग' पर क्लिक करेंएचटीएमएल से नियंत्रक कार्रवाई के लिए पैरामीटर पास करना। एक्शनलिंक

<li id="taskAdminPartCreate" runat="server"> 
            <%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 })%></li> 

मेरे नियंत्रक कार्रवाई की तरह

public ActionResult CreateParts(int parentPartId) 
    { 
     HSPartList objHSPart = new HSPartList(); 
     objHSPart.Id = parentPartId; 
     return View(objHSPart); 
    } 

है, मैं अपवाद मिलता है। कृपया इस से मेरी मदद करें।

+2

जोड़ना सवाल का अपवाद अच्छा :) –

+13

दोस्त हो सकता है, क्या नरक runat = सर्वर है कि गरीब ली पर क्या कर रही है? बलात्कार एमवीसी :) – rouen

+0

रूएन, क्या आप एएसपीएनटी एमवीसी –

उत्तर

55

आप गलत ओवरलोड का उपयोग कर रहे हैं। आप इस अधिभार

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper, 
    string linkText, 
    string actionName, 
    string controllerName, 
    Object routeValues, 
    Object htmlAttributes 
) 

का उपयोग करना चाहिए और सही कोड होगा

<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%> 

ध्यान दें कि अंत में अतिरिक्त पैरामीटर। अन्य अधिभार के लिए, LinkExtensions.ActionLink Method पर जाएं। जैसा कि आप देख सकते हैं कि string, string, string, object अधिभार नहीं है जिसे आप उपयोग करने का प्रयास कर रहे हैं। स्वीकार किए जाते हैं जवाब देने के लिए

+1

के पीछे पैटर्न जैसे "पृष्ठभूमि" सामानों के कुछ पढ़ने के साथ शुरू करने की सलाह देता हूं आप महान @archill हैं। आपने बहुत समय बचाया, धन्यवाद –

+0

धन्यवाद, मैं शून्य खो रहा था। –

10

आप एक्शनलिंक के गलत अधिभार का उपयोग कर रहे हैं। इसे आजमाएं

<%= Html.ActionLink("Create New Part", "CreateParts", "PartList", new { parentPartId = 0 }, null)%> 
9

अलावा:

आप

@Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 },null) 

इस का उपयोग करने के actionlink आप लिंक के लिए नए कस्टम विशेषता या शैली नहीं बना सकते पैदा करेगा जा रहे हैं।

हालांकि, एक्शनलिंक एक्सटेंशन में चौथा पैरामीटर उस समस्या को हल करेगा। अपने तरीके से अनुकूलन के लिए चौथा पैरामीटर का प्रयोग करें।

@Html.ActionLink("LinkName", "ActionName", "ControllerName", new { @id = idValue, @secondParam= = 2 }, new { @class = "btn btn-info", @target = "_blank" }) 
संबंधित मुद्दे