আমি একটি এমভিসি 3 আরটিএম প্রকল্পের জন্য আমার অ্যাপ_কোড ফোল্ডারে একটি রেজার ডিক্লেটিভ হেল্পার তৈরি করার চেষ্টা করছিলাম।
আমার যে সমস্যাটি দেখা গেল তা হ'ল এমভিসি এইচটিএমএল হেল্পার এক্সটেনশানগুলি, যেমন অ্যাকশনলিঙ্ক, উপলব্ধ নেই। এর কারণ কম্পাইল সাহায্যকারী থেকে আহরণ করা System.Web.WebPages.HelperPage
, এবং এটি একটি অনাবৃত যদিও Html
সম্পত্তি টাইপ তার System.Web.WebPages.HtmlHelper
বদলে System.Web.Mvc.HtmlHelper
।
আমি যে ধরণের ত্রুটি পাচ্ছিলাম তার একটি উদাহরণ:
'System.Web.Mvc.HtmlHelper' তে 'অ্যাকশন লিঙ্ক' এর সংজ্ঞা নেই এবং কোনও এক্সটেনশন পদ্ধতি নেই 'অ্যাকশনলিঙ্ক' টাইপের প্রথম আর্গুমেন্ট গ্রহণ করে 'System.Web.Mvc.HtmlHelper' পাওয়া যায় (আপনি কি কোনও নির্দেশিকা ব্যবহার করে নিখোঁজ রয়েছেন? বা একটি সমাবেশ রেফারেন্স?)
আমার একমাত্র সমাধান হ'ল আমার নিজস্ব হেল্পারপেজ তৈরি করা এবং এইচটিএমএল সম্পত্তি ওভাররাইড করা:
using System.Web.WebPages;
public class HelperPage : System.Web.WebPages.HelperPage
{
// Workaround - exposes the MVC HtmlHelper instead of the normal helper
public static new HtmlHelper Html
{
get { return ((System.Web.Mvc.WebViewPage) WebPageContext.Current.Page).Html; }
}
}
তারপরে আমাকে প্রতিটি সহায়িকার শীর্ষে নীচে লিখতে হবে:
@inherits FunnelWeb.Web.App_Code.HelperPage
@using System.Web.Mvc
@using System.Web.Mvc.Html
@helper DoSomething()
{
@Html.ActionLink("Index", "Home")
}
এটি কি এমভিসি 3 এ শক্ত হওয়ার অর্থ, বা আমি কিছু ভুল করছি?