Telerik MVC указывает свой собственный маршрутизатор действий в столбце шаблона - PullRequest
0 голосов
/ 07 августа 2011

Я использую последнюю версию Telerik MVC с ASP.NET MVC 3 и механизмом просмотра Razor.

У меня есть следующее объявление столбца:

column.Bound(x => x.Id)
   .Template(x => Html.ActionLink("Edit", "Edit", new { id = x.Id }))
   .Title("Action")
   .Width(100);

Я создалмой собственный метод, который перенаправляет на этот метод действия Edit, который я хотел бы использовать, но не уверен, как это сделать?

public static object AdministrationCategoryEdit(this UrlHelper urlHelper, int categoryId)
{
   Check.Argument.IsNotNull(urlHelper, "urlHelper");

   return new { area = "Administration", controller = "Category", action = "Edit", id = categoryId };
}

Как бы я сослался на вышеуказанный метод в объявлении моего столбца и пропустил его через идентификатор категории?

Например, если я хочу использовать его с кнопкой, я бы сделал что-то вроде:

$('#btnEdit').click(function () {
   window.location = '@Url.RouteUrl(Url.AdministrationCategoryEdit(Model.Id))';
});

1 Ответ

0 голосов
/ 07 августа 2011

Не существует идеального соответствия вашему требованию, поскольку все методы ActionLink имеют отдельный параметр для действия.Однако он должен работать со следующим кодом, даже если действие теперь указано дважды.

column.Bound(x => x.Id)
   .Template(x => Html.ActionLink("Edit", "Edit", Url.AdministrationCategoryEdit(x.Id)))
   .Title("Action")
   .Width(100);

Альтернативой может быть создание помощника HTML, аналогичного ActionLink, который теперь генерирует только параметры маршрута, но неполный код ссылки.

...