Как вызвать Ajax.BeginForm из пользовательского вспомогательного метода? - PullRequest
1 голос
/ 20 марта 2011

Можно ли вызвать Ajax.BeginFrom из пользовательского вспомогательного метода?

AjaxHelper недоступен в пользовательском вспомогательном методе, поэтому я пытался передать «Ajax», доступный в ViewPage, в метод Helper при его вызове, но затем в методе BeginForm недоступен для переданного параметра «Ajax».

1 Ответ

8 голосов
/ 20 марта 2011

Вы можете создать его экземпляр:

public static class HtmlExtensions
{
    public static MvcHtmlString Foo(this HtmlHelper htmlHelper)
    {
        var ajaxHelper = new AjaxHelper(htmlHelper.ViewContext, htmlHelper.ViewDataContainer);

        var form = ajaxHelper.BeginForm();
        // ... use the ajaxHelper and htmlHelper
    }
}

или если вы пишете метод расширения на AjaxHelper:

public static class AjaxExtensions
{
    public static MvcHtmlString Foo(this AjaxHelper AjaxHelper)
    {
        var htmlHelper = new HtmlHelper(AjaxHelper.ViewContext, AjaxHelper.ViewDataContainer);
        // ... use the ajaxHelper and htmlHelper
    }
}

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

using System.Web.Mvc;
using System.Web.Mvc.Html;
using System.Web.Mvc.Ajax;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...