Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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# 如何将pdf从一个控制器显示到另一个控制器_C#_Asp.net Mvc - Fatal编程技术网

C# 如何将pdf从一个控制器显示到另一个控制器

C# 如何将pdf从一个控制器显示到另一个控制器,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个由一个控制器呈现的pdf列表 现在,当我点击编辑按钮时,它应该在iframe中显示pdf。我可以做到这一点,但它只显示第一个pdf,而不是另一个 尝试使用tempdata,但未将工作id从一个控制器传递到另一个控制器 var id =TempData["query"] ; var ID = Convert.ToInt32(id); var filesCollection = obj.GetFiles(); var query = (from f in filesCollection

我有一个由一个控制器呈现的pdf列表

现在,当我点击编辑按钮时,它应该在iframe中显示pdf。我可以做到这一点,但它只显示第一个pdf,而不是另一个

尝试使用tempdata,但未将工作id从一个控制器传递到另一个控制器

var id =TempData["query"] ;
var ID = Convert.ToInt32(id);

var filesCollection = obj.GetFiles();

var query = (from f in filesCollection
    select f.FileId).First();
var convertquery = Convert.ToInt32(query);

string filename = (from f in filesCollection
    where f.FileId == ID
    select f.FilePath).Single();
string contentType = "application/pdf";
FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
return File (fs, contentType);

因为您正在对集合调用
First()
方法

您应该做的是,传递唯一的文件id并使用该id查询您的集合,然后返回该id

public ActionResult GetFile(int id)
{
   var f= obj.GetFiles.FirstOrDefault(s=>s.FileId ==id);
   if(f!=null)
   {
      // return the file stream
   }
   // return something else
}
从编辑屏幕调用时,请确保传递文件的唯一id

<iframe src="@Url.Action("GetFile","YourControllerName", new {id=14})" 
                                            style="width:718px; height:700px;" ></iframe> 


用有效的唯一文件Id替换
14
(可能是视图视图模型的属性值)

我得到的是空值。这就是我现在拥有的var filescolection=obj.GetFiles();var f=filescolection.FirstOrDefault(s=>s.FileId==id);如果(f!=null){is
f
null?这意味着
filescolection
中没有以FileId作为Id变量值的项。是否确实传递了正确的Id?在代码中放置断点并检查变量值。是的f为null。公共操作结果索引(字符串FileId){var filescolection=obj.GetFiles();//var q=(从filescolection中的f//选择f.FileId);//int ID=Convert.ToInt32(q);var query=(从filescolection中的a选择a.FileId).ToList();会话[“mId”]=query;return View(filescolection);}^^^这是我的索引页的内容,我现在正试图将该id传递到我的getpdf页面