URL.Action将额外信息附加到参数

时间:2012-05-07 19:34:49

标签: asp.net-mvc-3

在我看来,我有以下代码:

@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];

但很明显,这并不是我想要编码的原因......

0 个答案:

没有答案