在我看来,我有以下代码:
@foreach (Document document in Model.Documents)
{
<img src="@Url.Action("GetDocument", new { docId = Model.DocId, filename =
document.DocumentName })" />
}
单步执行代码,文件名按预期解析为“clown.jpg”。
但是,当此参数传递给控制器时,如下所示:
[AcceptVerbs(HttpVerbs.Get)]
[OutputCache(Duration = 36000)]
public virtual ImageResult GetDocument(int docId, string filename)
{
var attachment = _docService.GetDocument(docId, filename);
...........
}
filename参数附加了额外的整数,因此它的值类似于“clown.jpg?316767349393”。
为什么会这样,以及如何让它不这样做?它阻止我按文件名查找文件。我可以通过忽略来自的一切来破解我的方式?继续,但我想知道为什么会发生这种情况以及阻止它发生的正确方法。
编辑:我通过在控制器中添加以下代码来解决这个问题:filename = filename.Split('?')[0];
但很明显,这并不是我想要编码的原因......