Я хочу создать помощника:
@using System.Web.Mvc
@using System.Web.Mvc.Ajax
@using System.Web.Mvc.Html
@using System.Web.Routing
@using Proj.Extenders
@using Proj.Web.Mvc
@using Proj.Web.Mvc.Paging
@using Proj.Mvc.Helpers
@using Proj.Mvc
@helper Create(dynamic ajaxHelper, dynamic htmlHelper,
string text,
string targetID,
string actionName,
string controllerName,
object routeValues,
string active)
{
<li@{ if (active == targetID) { <text> class="active"</text> } }>
@ajaxHelper.ActionLink(htmlHelper.Resource(text).ToString(),
actionName, controllerName, routeValues, updateTargetId: targetID)
</li>
}
Проблема в том, что у меня есть методы расширения для HtmlHelper<T>
, где T
- это тип модели.Я хочу использовать один и тот же помощник для нескольких представлений, но @model
в представлениях будет другим.
Не найден метод расширения:
'System.Web.Mvc.AjaxHelper<X>' does not contain a definition for 'ActionLink'
ActionLink
метод
public static MvcHtmlString ActionLink<T>(this AjaxHelper<T> ajax,
string linkText = " ",
string actionName = null, string controllerName = null,
object routeValues = null, object htmlAttributes = null,
string confirm = null,
string httpMethod = null,
InsertionMode insertionMode = InsertionMode.Replace,
int loadingElementDuration = 0,
string loadingElementId = null,
string onBegin = null,
string onComplete = null,
string onFailure = null,
string onSuccess = null,
string updateTargetId = null,
string url = null)
{
var options = GetAjaxOptions(confirm, httpMethod, insertionMode, loadingElementDuration,
loadingElementId, onBegin, onComplete, onFailure, onSuccess, updateTargetId, url);
return ajax.ActionLink(linkText, actionName, controllerName, routeValues, options, htmlAttributes);
}
Файл расположен по адресу
- Website
- App_Code
TabHelper.cshtml
Как использовать методы HtmlHelper<T>
и AjaxHelper<T>
в файле помощника?