ASP.net MVC site.master link using HTML.ActionLink -
मेरे पास एक मेनू के लिए मेरे site.master
में निम्नलिखित कोड है:
& lt; ul id = "menu" & gt; & Lt; li & gt; & lt;% = html.ActionLink ("मेरा संपर्क जानकारी", "विवरण द्वारा यूज़रनेम /" + HTML। एन्कोड (पेज.यूसर। पहचान। नाम), "उपयोगकर्ता")% & gt; & lt; / li & gt; & Lt; / ul & gt;
जब मैं यूआरएल पर हॉवर करता हूं, तो मुझे लगता है कि यह इंगित करता है:
http: // site / users / detailbyUserName / [name]
> जो सही है।
समस्या यह है कि जब मैं नीचे उपयोगकर्ता
नियंत्रक वर्ग में एक ब्रेकपॉइंट डाल दिया:
सार्वजनिक कार्रवाई विवरण विवरण ByUserName (स्ट्रिंग) LoginName) {UserInfo user = repo.GetUserByName (लॉगिननाम); वापसी देखें (उपयोगकर्ता); }
ऐसा लगता है कि लॉगिननाम
पैरामीटर हमेशा null
है।
कोई सुझाव?
समस्या यह है कि आपके पास "loginName" नामक पैरामीटर निर्दिष्ट करने के लिए कोई रूट सेट अप नहीं है।
मुझे लगता है कि आपका डिफ़ॉल्ट रूट आपके अनुरोध को निगल रहा है, और "id" नामक पैरामीटर को [नाम] मान आवंटित करने का प्रयास कर रहा है। यदि आप "loginName" से "id" पैरामीटर का नाम बदलते हैं, तो मुझे यकीन है कि यह आपके लिए काम करेगा।
याद रखें कि रूटिंग इंजन ने प्रत्येक पैरामीटर के प्रत्येक यूआरएल सेगमेंट को मैप किया है डिफ़ॉल्ट मार्ग ऐसा दिखता है: "{नियंत्रक} / {action} / {id}"
। यदि आप "loginName" नामक एक पैरामीटर रखना चाहते हैं, तो आपको एक रूट के साथ आना होगा, जिसकी सेगमेंट "{controller} / {action} / {loginName}"
था, जो उस से भिन्न था डिफ़ॉल्ट मार्ग, ताकि डिफ़ॉल्ट मार्ग पहले से मेल नहीं खाता।
Comments
Post a Comment