Asp.net mvc 3 从MVC3中的视图调用api控制器中的GET方法

Asp.net mvc 3 从MVC3中的视图调用api控制器中的GET方法,asp.net-mvc-3,Asp.net Mvc 3,我想通过在视图中传递与按钮关联的文件名和GUID,在单击按钮时调用Web API控制器中的方法 这是代码 <div style="float: left; width: 75%; margin-left: 10px;"> @(Html.Telerik().Grid((IEnumerable<FileModel>)ViewData["DocumentList"]).Name("DocumentList").Template(@text @Html.ActionLink("

我想通过在视图中传递与按钮关联的文件名和GUID,在单击按钮时调用Web API控制器中的方法

这是代码

<div style="float: left; width: 75%; margin-left: 10px;">

@(Html.Telerik().Grid((IEnumerable<FileModel>)ViewData["DocumentList"]).Name("DocumentList").Template(@text @Html.ActionLink("FileDownload", "FileDownload", new { file = item.FileName, GuID = item.DocumentGuID }) /text).Width(10);

单击视图中的按钮如何调用方法下载?

使用ApicController,您很可能需要使用javascript调用方法异步。Jquery将提供以下帮助:

Jquery script inside the view, in document on load function:
    $('#buttonid').bind('click', function(){
            var filename = $('#file').attr('name');
        var guid = $('#file').attr('guid');
        $.getJSON("api/samplecontroller/download?file=" + filename +"&guid=" +guid,
            function (data) {
                // On success

            });

    });

Controller action:  
    public samplecontroller:Apicontroller
    {
        public Download([fromuri]string fileName, [fromuri]string guid)
        {

        }
    }

关于如何传递文件名和guid以及如何使用UriTemplate格式化Uri请求,还有其他选项。

我可以在网格内调用jquery函数吗,即在html.Telerik标记内?更好的方法是使用javascript,即不引人注目的方式[link],以便在呈现网格项时用类或ID标记按钮或链接。如果有许多类似的项,则为所有项分配一个伪类,如“mybtnclass”,而不是ID。然后可以使用类绑定事件,如:$'.mybtnclass'。绑定“click”,函数{..};下面是如何将类添加到操作链接
Jquery script inside the view, in document on load function:
    $('#buttonid').bind('click', function(){
            var filename = $('#file').attr('name');
        var guid = $('#file').attr('guid');
        $.getJSON("api/samplecontroller/download?file=" + filename +"&guid=" +guid,
            function (data) {
                // On success

            });

    });

Controller action:  
    public samplecontroller:Apicontroller
    {
        public Download([fromuri]string fileName, [fromuri]string guid)
        {

        }
    }