动态地为文件下​​载的超链接分配值

时间:2012-02-27 04:53:01

标签: vb.net asp.net-mvc-3 razor

MVC3 VB.NET Razor视图应用程序...我有一个视图,每个循环使用一个来显示所有可用的课程。在每个这些旁边我想放置一个Html链接来下载该课程的讲义文件。问题是我没有在任何论坛上发现有关动态地为超链接分配值的任何内容,因为它会随着每个循环的每次迭代而变化。我已将模型编码为保存与每个类关联的文件名。以下是视图中的摘录...

@For Each item In Model
    Dim currentItem = item
    Dim Handout = Path.Combine((AppDomain.CurrentDomain.BaseDirectory) + "CourseHandouts\") + currentItem.handoutFile1
    @<tr>

        <td>
            @Html.DisplayFor(Function(modelItem) currentItem.course_ref)
        </td>
           <td>
            @Html.DisplayFor(Function(modelItem) currentItem.course_title)
        </td>

        <td>@Html.DisplayFor(Function(modelitem) currentItem.course_start)</td>
        <td>@Html.DisplayFor(Function(modelitem) currentItem.course_end)</td>

        <td id="Actions">

            @Html.ActionLink("Details", "CourseDetails", New With {.id = currentItem.course_id}) 
         </td>
    <a href="@Handout">Course Handout</a>
    </tr>
Next

任何人对如何为每个文件创建唯一的下载链接有任何想法???

2 个答案:

答案 0 :(得分:1)

您需要将链接指向面向客户的网址:

<a href="@Url.Content("~/CourseHandouts/" + currentItem.handoutFile1)">

答案 1 :(得分:1)

你也可以忽略@Href()而忽略@Url.Content()来代替<a href="@Href("~/CourseHandouts/" + currentItem.handoutFile1)">Download File</a>

{{1}}