如何从自定义帮助器方法调用Ajax.BeginForm?

时间:2011-03-20 08:42:38

标签: asp.net asp.net-mvc-2

我可以从自定义帮助方法调用Ajax.BeginFrom吗?

AjaxHelper在自定义帮助器方法中不可用,因此我尝试在调用它时将ViewPage中提供的“Ajax”传递给Helper方法,但是在方法中,BeginForm在传递的“Ajax”参数上不可用。 / p>

1 个答案:

答案 0 :(得分:8)

你可以实例化它:

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;