आम तौर पर एक ASP.NET दृश्य में एक URL (नहीं <a>
) प्राप्त करने के लिए निम्नलिखित फ़ंक्शन का उपयोग कर सकता है :
Url.Action("Action", "Controller");
हालाँकि, मैं यह नहीं कर सकता कि इसे कस्टम HTML सहायक से कैसे किया जाए। मेरे पास है
public class MyCustomHelper
{
public static string ExtensionMethod(this HtmlHelper helper)
{
}
}
सहायक चर में एक्शन और जेनरेटलिंक विधियां हैं, लेकिन वे उत्पन्न करते हैं <a>
। मैंने ASP.NET MVC स्रोत कोड में कुछ खुदाई की, लेकिन मुझे सीधा रास्ता नहीं मिला।
समस्या यह है कि ऊपर उल्लू व्यू क्लास का सदस्य है और इसकी तात्कालिकता के लिए इसे कुछ संदर्भों और मार्ग मानचित्रों की आवश्यकता है (जो मैं नहीं चाहता कि मैं किसी भी तरह से निपटूं और मैं वैसे भी नहीं हूं)। वैकल्पिक रूप से, HtmlHelper वर्ग के उदाहरण में कुछ प्रसंग भी हैं, जो मुझे लगता है कि या तो उरल उदाहरण की संदर्भ जानकारी के सबसेट का समर्थक है (लेकिन फिर से मैं इससे निपटना नहीं चाहता)।
संक्षेप में, मुझे लगता है कि यह संभव है, लेकिन चूंकि मैं सभी तरीकों को देख सकता हूं, इसलिए कुछ अधिक या कम आंतरिक ASP.NET सामग्री के साथ कुछ हेरफेर करना शामिल है, मुझे आश्चर्य है कि क्या कोई बेहतर तरीका है।
संपादित करें: उदाहरण के लिए, मुझे लगता है कि एक संभावना होगी:
public class MyCustomHelper
{
public static string ExtensionMethod(this HtmlHelper helper)
{
UrlHelper urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
urlHelper.Action("Action", "Controller");
}
}
लेकिन यह सही नहीं लगता। मैं खुद UrlHelper के उदाहरणों के साथ काम नहीं करना चाहता। एक आसान तरीका होना चाहिए।