如何使用原始文件名映射GUID?

时间:2012-09-06 15:09:52

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

所以我上传文件并将GUID添加到数据库,在我的索引视图页面上,我想在一列中显示原始文件名的文件,在下一栏显示GUID,任何建议?

类定义为

public Guid ID { get; set; }
    public string FileName { get; set; }

索引控制器

     public ViewResult Index()
    {

        return View(uploadedfileRepository.AllIncluding(UploadedFile => UploadedFile.TimeEntrys));
    }

和视图

 @foreach (var item in Model)
{
    <tr>
        <td>
            @item.ID
        </td>
        <td>
           @item.FileName
        </td>
}

所以我将文件保存到我的uploadfile数据库上下文中,并尝试在索引视图中显示该文件,并在其旁边显示我的origianl文件名和guid。

我保存文件的方式

UploadedFileRepository newUploadedFileRepository = new UploadedFileRepository();
    private string _uploadsFolder = HostingEnvironment.MapPath("~/App_Data/Files/");

    public Guid SaveUploadedFile(HttpPostedFileBase fileBase)
    {
        var identifier = Guid.NewGuid();
        fileBase.SaveAs(_uploadsFolder + identifier + suffix(fileBase.FileName));
var file = new UploadedFile { FileName = _uploadsFolder + identifier + suffix(fileBase.FileName), ID = Guid.NewGuid() };
        _repository.UploadedFiles.Add(file);
        return identifier;

    }
    static string suffix(string filename)
    {
        string[] names = filename.Split('.');

        return "." + names[1].ToString();
    }

1 个答案:

答案 0 :(得分:1)

@model MyWebApplicationNameSpace.Models.MyModel

<table>
  <tr>
    <td>@Model.ID</td>
    <td>@Model.FileName</td>
  </tr>
</table>

为什么不返回UploadedFile Type而不是返回Guid。

public UploadedFile SaveUploadedFile(HttpPostedFileBase fileBase) {

    ...
    return file;
}