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

tee*_*nup 1 asp.net asp.net-mvc-2

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

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

Dar*_*rov 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
    }
}
Run Code Online (Sandbox Code Playgroud)

或者如果您正在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
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您想将其他扩展方法纳入范围,请不要忘记正确的使用方法:

using System.Web.Mvc;
using System.Web.Mvc.Html;
using System.Web.Mvc.Ajax;
Run Code Online (Sandbox Code Playgroud)