Normalde bir ASP.NET görünümünde bir URL (değil <a>
) elde etmek için aşağıdaki işlev kullanılabilir :
Url.Action("Action", "Controller");
Ancak, özel bir HTML yardımcısından nasıl yapılacağını bulamıyorum. Sahibim
public class MyCustomHelper
{
public static string ExtensionMethod(this HtmlHelper helper)
{
}
}
Helper değişkeni, Action ve GenerateLink yöntemlerine sahiptir, ancak <a>
's üretir . ASP.NET MVC kaynak kodunda bazı kazma yaptım, ama basit bir yol bulamadık.
Sorun yukarıdaki Url görünüm sınıfının bir üyesi ve somutlaştırılması için bazı bağlamlar ve yol haritaları (ki ben uğraşmak istemiyorum ve yine de olması gerekiyordu) ihtiyacı olmasıdır. Alternatif olarak, HtmlHelper sınıfının örneği de, Url örneğinin bağlam bilgilerinin alt kümesinin akşam yemeği olduğunu varsaydığım bazı içeriğe sahiptir (ancak yine bununla uğraşmak istemiyorum).
Özetle, bunun mümkün olduğunu düşünüyorum ama görebildiğim tüm yollar, az ya da çok dahili ASP.NET şeyler ile bazı manipülasyonlar içerdiğinden, daha iyi bir yol olup olmadığını merak ediyorum.
Düzenleme: Örneğin, gördüğüm bir olasılık:
public class MyCustomHelper
{
public static string ExtensionMethod(this HtmlHelper helper)
{
UrlHelper urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
urlHelper.Action("Action", "Controller");
}
}
Ama doğru görünmüyor. UrlHelper örnekleriyle kendim uğraşmak istemiyorum. Daha kolay bir yol olmalı.