【问题标题】:Can i pass a Model from view to controller without Form?我可以在没有表单的情况下将模型从视图传递到控制器吗?
【发布时间】:2010-09-27 16:57:20
【问题描述】:

大家好,我很难将我的模型传递给控制器​​> 我想知道这是否是一种好的做法,或者是否有可能这样做。这就是我想要实现的目标。

<% foreach (DownloadFile file in Model){ %>
     <a href="<%= Url.Action("DownloadFile", new { File  = file}) %>">click here to download</a>
 <% } >%

我想将 DownloadFile 对象“文件”传递给我的控制器,如下所示:

public ActionResult DownloadLabTestResult(DownloadFile File)
    {
        DownloadFile file = File;

        ...
        return new FileStreamResult(Response.OutputStream, Response.ContentType);

    }

我尝试传递一个字符串或整数及其可行的方法。但是当我想传递一个像上面这样的对象时,我得到一个空值。这样做的正确方法是什么?谢谢你!

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-2


    【解决方案1】:

    当使用FileStreamResult时,你需要给它代表文件内容的流,它会被消费并发送给客户端。目前,您改为为其提供 ASP.NET 响应流。它不可能从中读取(它是一个仅输出流)。

    所以;内容在哪里?打开一个流到 that 并将其传入。根据您的实现,这可能意味着本地文件系统、网络文件系统、数据库、远程 http (etc) 服务器或内存中生成的东西(通常通过MemoryStream)。

    同样,你需要告诉 MVC 内容类型是什么;你不应该使用来自Response.* 的值,因为那是你正在构建的

    【讨论】:

      猜你喜欢
      • 2018-02-27
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 2015-10-06
      • 2013-11-20
      • 1970-01-01
      • 2017-11-27
      相关资源
      最近更新 更多