私の見解では、ローカルフォルダからファイルをダウンロードする必要があります。
だから私は次のようなajax関数を書きました
<img id="trailer" src="../../Images/icon.gif" alt="exists" title="Click on image to Download file"/>
<script type="text/javascript">
$(document).ready(function () {
$('#trailer').click(function () {
var cid = $('#CourseID').val();
var fnm = $('#FileName').val();
var url2 = "/Coursework/DownloadPrtfTrailor" + '?FileName=' + fnm + '&CourseID=' + cid;
$.ajax({
url: url2,
cache: false,
type: 'POST'
});
});
});
</script>
そしてコントローラーで私は次のコードを書きました:
[HttpPost]
public ActionResult DownloadPrtfTrailor()
{
string fileName = string.Empty;
string courseID = string.Empty;
string filepath = string.Empty;
if (Request.QueryString != null && Request.QueryString.Count > 0)
{
if (!string.IsNullOrEmpty(Request.QueryString["FileName"]))
fileName = Request.QueryString["FileName"];
if (!string.IsNullOrEmpty(Request.QueryString["CourseID"]))
courseID = Request.QueryString["CourseID"];
}
try
{
var fs = System.IO.File.OpenRead(Server.MapPath("/ePortfolio/" + courseID + "/" + "Icons" + "/" + fileName));
string extn = "application/" + Path.GetExtension(fileName);
return File(fs, extn, fileName);
}
catch
{
throw new HttpException(404, "Couldn't find " + fileName);
}
}
これを通して私はファイルをダウンロードすることができません
しかし、次のようなアクションリンクを介して関数を呼び出すと
@Html.ActionLink("Download", "DownloadPrtfTrailor",
new {CourseID=item.prtfMaster.CourseID, fileName1 = item.prtfMaster.IconFileName})
ファイルを正常にダウンロードできます画像をクリックしてファイルをダウンロードするにはどうすればよいですか
助けてください