Table 从视图到控制器的值(ASP.NET MVC)

Table value from View to Controller ( ASP.NET MVC )

我正在 ASP.NET MVC 5 中开发一个项目,我的 VIEW 中有一个 TABLE,我在其中通过列表和 Viewbag 显示 ftp 文件夹的内容.

我需要 Table 可以点击。我使用了 *.js 文件,所以行是可点击的,但现在我在将文件名(行的值)返回给 Controller 时遇到了问题。

查看代码:

 <table class="row col-md-12 leva table-responsive table-bordered table-hover ">
        <tbody data-link="row" class="rowlink">
            @foreach (var item in ViewBag.files)
            {
                <tr>
                    <td class=" row col-md-12 "><a href="#" target="_blank"> <h5> @item</h5></a></td>

                </tr>
            }
        </tbody>
    </table>

和控制器代码:

 List<string> ftpfiles = new List<string>();
        try
        {
            var ftpco = new Project.Helpers.ftp(@path, name, passwd);
            string[] simpleDirectoryListing = ftpco.directoryListSimple("");


                for (int i = 0; i < simpleDirectoryListing.Count(); i++)
                {
                    if (simpleDirectoryListing[i].Length >= 3)
                    {
                        ftpfiles.Add(simpleDirectoryListing[i]);
                    }

                }
                ViewBag.files = soubory;





        }
        catch { ViewBag.files = "nenacteno"; }

不清楚用户单击某行时的交互方式。你想要:

  1. Javascript 下载文件并显示预览或内容
  2. 允许用户编辑文件
  3. 获取有关文件的元数据
  4. 将用户定向到下载文件的另一个操作方法

我将布置文件下载存根,但您可以通过更改操作方法逻辑将其更改为您想要的任何交互。您应该做的是在 URL 中通过 GET 传递文件名(因为这是 MVC 方式)。视图将是(格式缺少@,因为代码格式化程序目前不适合我):

    foreach (var item in ViewBag.files)
    {
        <tr>
            <td>@Html.ActionLink(item, "Download", "YourController", new { id = item }, null)
         </tr>
     }

然后您将在控制器中创建一个具有获取参数的操作:

//
//GET: /YourController/Download/{id}
public ActionResult Download(string id)
{
    //download logic
}

通过将 new { id = item } 添加到 html 帮助器,您可以通过 GET 将 ftp 文档名称传递给操作方法。在这种情况下,您将在您的逻辑中使用名为 'id' 的字符串来检索文档,或者如果您的初衷不是下载文档,您可以以类似的方式实现您想要的任何内容。

顺便说一下,请确保使用正确的 @Html.ActionLink 重载 - 如果您注意到我放置了 4 个参数,null 是最后一个。在 MVC5 中,他们改变了这一点,如果你不输入第 4 个参数,你将得到 /controller/action?id=Value 而不是 URL.

中的 /controller/action/value