2

私はそれが次のような署名である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ヘルパーが拡張メソッドであることを知っています。質問:コールバック関数を指定できるAjax.ActionLinkのようなカスタムHTMLヘルパーを作成する方法。コールバック関数をパラメーターとして使用して実行する機能を備えた拡張メソッドを作成する方法の例を教えてください。

4

1 に答える 1

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")
于 2012-10-17T12:34:13.150 に答える