के साथ विस्तार के तरीके मैंने एक विस्तार विधि बनाई है और मेरे web.config
फ़ाइल में अपना नामस्थान शामिल किया है। एक्सटेंशन विधि ठीक काम करती है और परीक्षण कोड द्वारा ठीक से accesed है। समस्या यह है कि, मुझे अभी भी नामस्थान से संबंधित कोई त्रुटि नहीं मिल रही है।एमवीसी 4 और रेजर
मैं हो रही है एएसपी नेट त्रुटि संदेश है:
CS1061: 'System.Uri' 'IsCurrentUrl' प्रकार का एक पहला तर्क को स्वीकार करने 'IsCurrentUrl' और कोई विस्तार विधि के लिए एक परिभाषा शामिल नहीं है 'System.Uri' पाया जा सकता है (क्या आप एक प्रयोग निर्देश या असेंबली संदर्भ खो रहे हैं?)
नीचे संबंधित कोड है।
Web.config:
<system.web>
<httpRuntime targetFramework="4.5" />
<compilation debug="true" targetFramework="4.5" />
<pages>
<namespaces>
<add namespace="System.Web" />
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
<add namespace="MyMainSite2.Library.Extensions" />
</namespaces>
</pages>
</system.web>
एक्सटेंशन विधि कोड:
namespace MyMainSite2.Library.Extensions
{
public static class UriExtensions
{
#region Public Static Methods
public static bool IsCurrentUrl(this Uri uri, string url)
{
if (String.IsNullOrWhiteSpace(url))
return false;
url = url.Trim().ToLower();
string absolutePath = uri.AbsolutePath.Trim().ToLower();
if (!url.StartsWith("/") && absolutePath.StartsWith("/"))
absolutePath = absolutePath.Remove(0, 1);
bool match = absolutePath == url;
return match;
}
#endregion
}
}
उस्तरा कोड:
@model MyMainSite2.UI.Web.Models.Shared.TopMenuModel
@foreach (var item in this.Model.Items)
{
if(this.Request.Url.IsCurrentUrl(item.Url)) // this line is failing because UriExtensions.IsCurrentUrl is not being found
{
@:<li class="current">
}
else
{
@:<li>
}
@:<a href="@item.Url">@item.Text</a></li>
}
क्या आपको व्यू फ़ाइल में कथन का उपयोग करने का अधिकार मिला है? – dtsg
नहीं। मैं नामस्थान को web.config में डाल रहा हूं ताकि मुझे प्रत्येक दृश्य फ़ाइल के लिए ऐसा करने की आवश्यकता न हो। – rhughes
क्या आपने इसे 'MyMainSite2.Library.Extensions.UriExtensions' में बदलने का प्रयास किया है? – dtsg