如何使用回调javascript函数创建自定义html帮助器?

时间:2012-10-17 11:46:07

标签: javascript asp.net asp.net-mvc callback html-helper

我知道存在 Ajax.ActionLink 功能,其签名如下:

@Ajax.ActionLink(
    "click me", 
    "SomeAction",
    "SomeController",
    new AjaxOptions { 
        HttpMethod = "POST", 
        OnSuccess = "success" 
    }
)

我可以附加我的回调,例如:

function success(data) {
    var json = $.parseJSON(data.responseText);
    alert(json.someProperty);
}

我知道html助手是扩展方法。问题:如何创建自定义html帮助器,如Ajax.ActionLink,我可以在其中指定回调函数。谁能给我举例说明如何制作具有将回调函数作为参数并执行它的能力的扩展方法。

1 个答案:

答案 0 :(得分:3)

  

谁可以举例说明如何使用该功能制作该扩展方法   将回调函数作为参数并执行它。

下面:

public static class HtmlExtensions
{
    public static IHtmlString ExecuteCallback(this HtmlHelper helper, string callback)
    {
        var script = new TagBuilder("script");
        script.Attributes["type"] = "text/javascript";
        script.InnerHtml = string.Format("{0}();", callback);
        return new HtmlString(script.ToString(TagRenderMode.Normal));
    }
}

然后在您的视图中,您可以调用帮助程序:

<script type="text/javascript">
    function someCallback() {
        alert('the callback is executed');
    }
</script>
@Html.ExecuteCallback("someCallback")