Asp.net mvc 为ASP MVC中的每个链接分配路径
我有多个pdf文档,我必须在一个视图中显示。我的代码是为所有链接打开同一个文档,这是错误的 在我的控球器中:Asp.net mvc 为ASP MVC中的每个链接分配路径,asp.net-mvc,Asp.net Mvc,我有多个pdf文档,我必须在一个视图中显示。我的代码是为所有链接打开同一个文档,这是错误的 在我的控球器中: public ActionResult Docs() { var docModel = this._documentBuilder.Build(this.StateData); foreach (var doc in docModel.OldEstimateFiles) { return this.File(doc.PdfUrl, "applica
public ActionResult Docs()
{
var docModel = this._documentBuilder.Build(this.StateData);
foreach (var doc in docModel.OldEstimateFiles)
{
return this.File(doc.PdfUrl, "application/pdf");
}
return null;
}
并且认为:
foreach (var menuItem in Model.OldEstimateFiles)
{
<ul >
<li>
@using (Html.Anchor(new ststyle { URL = "/DocumentEstimate/Docs", Target = "_blank", Text = menuItem.Label }))
{
}
</li>
</ul>
}
foreach(Model.OldEstimateFiles中的var menuItem)
{
-
@使用(Html.Anchor(新ststyle{URL=“/DocumentEstimate/Docs”,Target=“\u blank”,Text=menuItem.Label}))
{
}
}
知道oldestimatefiles是一个列表时,我的代码有什么问题?我在控制器中编辑了我的操作,以获取ID
public ActionResult Docs(string id)
{
var docModel = this._documentBuilder.Build(this.StateData);
return docModel.OldEstimateFiles.Any() ? this.File(docModel.OldEstimateFiles.Find(p => p.ID == id).PdfUrl, "application/pdf") : null;
}
我在routeConfig文件中添加了一个条目,其中包含URL和文档id,并在视图中编辑了我的链接:
@using (Html.Anchor(new ststyle
{
URL = "/DocumentEstimate/EstimateDocs/" + menuItem.ID,
Id = menuItem.ID
它解决了问题。您的控制器方法中有一个
return
语句(它立即存在)在第一次迭代中退出该方法并仅返回第一个文件。您的方法需要一个参数来标识该文件,以便您返回一个特定的文件,这很好,我同意,但如何在锚中的视图中调用它?我不知道Html.anchor()是什么
是-它不是MVC的一部分。您如何唯一地标识您的文件?使用标准帮助程序,它将是@Html.ActionLink(“displayName”、“Docs”、“controllerName”、new{id=someIdentifier},null)
方法将是public FileResult Docs(int id)
,然后根据id值返回文件。