से Html.ActionLink और Url.Action (...) का उपयोग करके मैं प्री-सेट मानों के साथ एक्शनलिंक प्रस्तुत करने के लिए एक HTMLHelper लिखना चाहता हूं, उदाहरण के लिए।नियंत्रक
<%=Html.PageLink("Page 1", "page-slug");%>
जहां PageLink
एक समारोह है कि एक ज्ञात कार्रवाई और नियंत्रक, जैसे के साथ ActionLink
कॉल है। "सूचकांक" और "पृष्ठ"।
HtmlHelper
और UrlHelper
Controller
या कक्षा के अंदर मौजूद नहीं है, मैं कक्षा के अंदर से किसी कार्रवाई के सापेक्ष URL कैसे प्राप्त करूं?
अद्यतन: उपार्जित अनुभव मैं अब के अतिरिक्त तीन साल को देखते हुए, यहाँ मेरी सलाह है: बस Html.ActionLink("My Link", new { controller = "Page", slug = "page-slug" })
या बेहतर अभी तक,
<a href="@Url.Action("ViewPage",
new {
controller = "Page",
slug = "my-page-slug" })">My Link</a>
आपका एक्सटेंशन विधि सुंदर और कम हो सकता है का उपयोग करें, लेकिन यह कहते हैं एक और अवांछित बिंदु-विफलता और किसी भी वास्तविक मूल्य को जोड़ने के बिना किराए के लिए एक नई सीखने की आवश्यकता। एक जटिल प्रणाली को डिजाइन करने के रूप में इसके बारे में सोचें। एक और चलती हिस्सा क्यों जोड़ें, जब तक यह विश्वसनीयता (नहीं), पठनीयता (थोड़ा, एक बार जब आप और दस्तावेज़ पढ़ते हैं), गति (कोई नहीं) या समरूपता (कोई नहीं) जोड़ता है।
अद्यतन के लिए +1। मैं भविष्य में खोजकर्ताओं को इस प्रश्न पर 'Url.Action' को कंट्रोलर के अंदर से कॉल करने पर भी इंगित करता हूं - http://stackoverflow.com/questions/2031995/call-urlhelper-in-models-in-asp-net-mvc – brichins