Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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# 在web浏览器的新选项卡中打开文件_C#_Asp.net Mvc - Fatal编程技术网

C# 在web浏览器的新选项卡中打开文件

C# 在web浏览器的新选项卡中打开文件,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个视图,其中显示了目录中xml文件的列表。我还有一个按钮,可以显示在浏览器中选择的文件名的内容。当前,它在同一选项卡中显示内容。但我想在浏览器的新选项卡中显示它。。 例如,如果我从列表中选择了两个文件名,那么它应该为这两个文件打开不同的选项卡。。 请在下面查找代码 public ActionResult ViewFile(string[] Name) { byte[] ImageData = null; for (int i = 0; i < Name.Length; i++) {

我有一个视图,其中显示了目录中xml文件的列表。我还有一个按钮,可以显示在浏览器中选择的文件名的内容。当前,它在同一选项卡中显示内容。但我想在浏览器的新选项卡中显示它。。 例如,如果我从列表中选择了两个文件名,那么它应该为这两个文件打开不同的选项卡。。 请在下面查找代码

public ActionResult ViewFile(string[] Name)
{
byte[] ImageData = null;

for (int i = 0; i < Name.Length; i++)
{

string filepath = holdpath + @"\" + Name[i];
string result;
using (StreamReader streamReader = new StreamReader(filepath))
{
result = streamReader.ReadToEnd();

}
using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream())
{
Document document = new Document(PageSize.A4, 10, 10, 10, 10);
PdfWriter writer = PdfWriter.GetInstance(document, memoryStream);
document.Open();

Paragraph paragraph = new Paragraph();
paragraph.Add(result);
document.Add(paragraph);

document.Close();
ImageData = memoryStream.ToArray();
}


}
Response.AppendHeader("Content-Disposition", "inline; filename=MyFile.pdf");
return File(ImageData, "application/pdf");
}
public ActionResult视图文件(字符串[]名称)
{
字节[]ImageData=null;
for(int i=0;i
请注意,我使用的是itextsharp,因为如果需要,该文件还需要以pdf格式下载

我在这里添加了视图

@model IEnumerable<FileInfo>
@{
ViewBag.Title = "files";
}

<h2>Held files</h2>
@using (Html.BeginForm())
{
<div style="border:solid;width:100%;overflow-x:auto;">
<table  align="center" style="width:100%">
<thead>
<tr>
<th>File Name</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach (FileInfo file in Model)
{
<tr>

<td>
<input type="checkbox" name="Name" value="@file.Name" />
@file.Name
</td>
<td>
@Html.ActionLink("View", "ViewFile", "HoldFiles", new { Name = file.Name }, 
new { @class = "btn btn-primary btn-sm", target = "_blank" })

</td>        
</tr>

}
</tbody>
</table>
</div>
}
@model IEnumerable
@{
ViewBag.Title=“文件”;
}
持有文件
@使用(Html.BeginForm())
{
文件名
行动
@foreach(模型中的FileInfo文件)
{
@文件名
@ActionLink(“视图”、“视图文件”、“保持文件”、新的{Name=file.Name},
新建{@class=“btn btn主btn sm”,target=“\u blank”})
}
}

在视图中,在锚元素上放置
target=“\u blank”

例如:

<a href="https://www.url.com" target="_blank">Open in new tab</a>

在您的视图中,在锚元素上放置
target=“\u blank”

例如:

<a href="https://www.url.com" target="_blank">Open in new tab</a>

你不会从控制器那里做的。查看HTML
a
nchor元素的
target
属性。您能给我一些示例或链接吗:)@SamAxe.Yer不会从控制器执行此操作。查看HTML
a
nchor元素的
target
属性。你能给我一些例子或链接吗:)@SamAxe。我知道选民认为我没有完全回答OP的问题,特别是这一部分-“例如,如果我从列表中选择了两个文件名,则应为这两个文件打开不同的选项卡。“,但这个答案会给他一些小想法,他应该怎么做。不知怎的,他选择了这两个元素,对吗?我假设使用javascript,所以当按下按钮时,他可以获得元素,例如,点击链接或他喜欢的任何东西。我使用的是razor。但是我对id部分有点困惑。。在我的情况下,我必须显示一个已选择的文件,并且它存在于我的本地目录中。.新选项卡正在打开,但出现错误。.该id部分是您从视图传递到控制器的
routeValue
,这只是一个示例,您需要编写自己的。我已为视图添加了代码。。它说找不到资源,你能分享你的视图代码吗?这些链接是一部分。我知道下层选民认为我没有完全回答OP的问题,特别是这一部分——“例如,如果我从列表中选择两个文件名,那么它应该为这两个文件打开不同的选项卡。”,但这个回答会给他一些小想法,他应该如何做。不知怎的,他选择了这两个元素,对吗?我假设使用javascript,所以当按下按钮时,他可以获得元素,例如,点击链接或他喜欢的任何东西。我使用的是razor。但是我对id部分有点困惑。。在我的情况下,我必须显示一个已选择的文件,并且它存在于我的本地目录中。.新选项卡正在打开,但出现错误。.该id部分是您从视图传递到控制器的
routeValue
,这只是一个示例,您需要编写自己的。我已为视图添加了代码。。它说找不到资源,你能分享你的视图代码吗?这些链接是一部分。