两周前我一直面对这个问题,请任何帮助。
我使用HttpPostedFileBase字段创建一个模型,将文件保存在适用于Create View的文件夹中非常好。
现在我想在详细信息视图中建立上传文件的链接。
我尝试了几种方法但我找不到解决方案。
请帮助。
模型中的我为文件
定义了一些参数和以下内容 [NotMapped]
[Display(Name = "C.V")]
[DataType(DataType.Upload)]
public HttpPostedFileBase CV { get; set; }
在控制器中我做了以下
if (ModelState.IsValid)
{
if (file != null && file.ContentLength > 0)
{
// extract only the fielname
var fileName = Path.GetFileName(file.FileName);
// store the file inside ~/Content/LearnObject-Repository folder
var path = Path.Combine(Server.MapPath("~/Content/CVs"), fileName);
file.SaveAs(path);
var fileNameToSaveInDB = @"~/Content/CVs/" + fileName;
}
db.Employees.Add(employee);
db.SaveChanges();
谢谢,
答案 0 :(得分:1)
有关您实际尝试过的内容的更多信息会有所帮助,但只需几个简单的步骤:
在模型中添加新属性
[NotMapped]
public string FileUrl { get; set; }
在控制器中设置值
public ActionResult Details(int id = 0)
{
MyModel myModel = db.MyModel.Find(id);
myModel.FileUrl = ""; // <-- resolve link;
...
}
并在视图中添加链接
<div class="display-field">
<a href="@Html.DisplayFor(model => model.FileUrl)">Link to file</a>
</div>