Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将控制器连接到击倒js_C#_Javascript_Jquery_Asp.net Mvc_Knockout.js - Fatal编程技术网

C# 将控制器连接到击倒js

C# 将控制器连接到击倒js,c#,javascript,jquery,asp.net-mvc,knockout.js,C#,Javascript,Jquery,Asp.net Mvc,Knockout.js,我有一个网格,在其中我显示列,其中一列有一个图标,一旦单击,它应该根据单击的项目id下载一个文件 因为我使用knockout和jqueryjavascript来显示网格和图标。如何将获取文件的方法连接到js文件中的图标 JS文件: onDataClick: function (row) { //Call the method from controller to allow downloading file }, public FileResult GetFil

我有一个网格,在其中我显示列,其中一列有一个图标,一旦单击,它应该根据单击的项目id下载一个文件

因为我使用knockout和jqueryjavascript来显示网格和图标。如何将获取文件的方法连接到js文件中的图标

JS文件:

onDataClick: function (row) {
//Call the method from controller to allow downloading file
                },
public FileResult GetFile(int id)
        {
            .....
        }
onDataClick: function (row) {
    //Call the method from controller to allow downloading file
    window.open('@getFileUrl' + '?id=' + row.id, "_blank");
},
控制器-获取方法:

onDataClick: function (row) {
//Call the method from controller to allow downloading file
                },
public FileResult GetFile(int id)
        {
            .....
        }
onDataClick: function (row) {
    //Call the method from controller to allow downloading file
    window.open('@getFileUrl' + '?id=' + row.id, "_blank");
},
更新

视图:

@{
    ViewBag.Title = "Some Title";
    string url = Url.Action("GetFile");
}

<div data-bind="template: { name: 'knockoutGridTemplate', data: grid }" class="gridWrapper"></div>

在你看来,你可以这样做

@{
    string getFileUrl = Url.Action("GetFile");
}
/*在您的viewModel中,根据您的操作方式,您可以在项目内部执行操作*/
item.getFileUrl='@getFileUrl'+?id=this.id

在您的html中:

<div data-bind="foreach: item">
    <a data-bind="attr : { href = getFileUrl}">get file</a>
</div>

看起来您可能可以使用iframe和自定义KnockoutJS绑定来实现这一点,如的接受答案中所述。由于我没有直接查看html页面,因此网格正在生成并显示在js中,我可以将其添加到js中的onclick中吗?我想我非常接近了-如果您可以检查并确保我有我应该做的事情。在查看页面中,我将为控制器传递一个id。谢谢你的帮助看起来不错,我认为为每一行创建一个函数不是一个好主意。我认为最好有一个泛型函数,它在行内接收id和调用,但不在每行上声明。