लोग,रेजर दृढ़ता से टाइप किए गए Html.ActionLink के साथ आसानी से काम नहीं करता है?
हम दृढ़ता से टाइप किया कार्रवाई लिंक तरीकों कि इस तरह दिखना उपयोग करने के लिए कोशिश कर रहे हैं:
Html.ActionLink<HomeController>
उस्तरा दृश्य इंजन में
।
मुझे पता है कि हमें हर समय उनका उपयोग नहीं करना चाहिए क्योंकि यह फिल्टर इत्यादि को अनदेखा करता है, लेकिन तथ्य यह है कि हम उनका उपयोग करते हैं।
अगर मैं ऐसा तरह उस्तरा में सीधे इस का उपयोग करने का प्रयास करें: क्योंकि उस्तरा को पार्स नहीं है
CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
आप संकलित कोड को देखें, तो यह है:
@Html.ActionLink<HomeController>(c => c.Index, "Home")
मैं की कोई त्रुटि मिलती है जैसा कि आप उम्मीद करेंगे उतना बयान। त्रुटि लाइन है कि से संकलित स्रोत, इस तरह दिखता है:
...
Line 101: #line 13 "C:\dev\TheNetwork\POC\Web\Views\Policy\Edit.cshtml"
Line 102: Write(Html.ActionLink);
Line 103:
Line 104:
Line 105: #line default
Line 106: #line hidden
Line 107: WriteLiteral("<PolicySectionController>(c => c.Edit(null), "New\")\r\n\r\n\r\n\r\n");
संक्षिप्तता के लिए छोड़े गए :) आप देख सकते हैं बहुत सामान, यह "<" मुझे लगता है यह एक HTML के रूप में है कि व्याख्या है पर विभाजन टैग, लेकिन मुझे यकीन नहीं है।
मुझे एक कामकाज मिला, लेकिन यह बदसूरत है। यह काम करता है:
@{Write(Html.ActionLink<PolicySectionController>(c => c.Edit(null), "New"));}
क्या किसी को ऐसा करने का बेहतर तरीका पता है?
हाँ, यह काम करता है! अभी भी आदर्श नहीं है, लेकिन मेरे पास गड़बड़ी से बेहतर है, धन्यवाद :) – CubanX
दुर्भाग्यवश (इस परिदृश्य के लिए) रेजर '<'एक चरित्र के रूप में उपयोग करता है जो संक्रमण को निर्धारित करता है और एक स्पष्ट तरीके से मार्कअप और जेनेरिक विधि दोनों का समर्थन करना संभव नहीं है। – marcind
बीटीडब्ल्यू, उदाहरण में 'शून्य' अनावश्यक है, निम्नलिखित ही '@ (HTML.ActionLink (c => c.Edit(), "नया") पर काम करेगा)) –