Code first アプローチを使用して MVC 4 にデータを挿入していますが、ファイルをアップロードし、ストア プロシージャを使用してその名前を保存する必要があります。問題は、データがデータベースに正常に保存されるが、毎回画面にこのエラーが表示されることです。
コントローラのメソッド コードは次のとおりです。
[HttpPost]
public ActionResult myFile(HttpPostedFileBase file, String fileName )
{
if (file.ContentLength > 0)
{
fileName = Path.GetFileName(file.FileName);
string ext = Path.GetExtension(fileName).ToLower();
if (ext == ".jpg" || ext == ".jpeg" || ext == ".png" || ext == ".gif")
{
if (file.ContentLength > 0.2 * 1024 * 1024)
{
ViewBag.uploadFailMessage = "Invalid File Size, It must be less than 1 MB";
}
else
{
var path = Path.Combine(Server.MapPath("~/uploads"),fileName);
file.SaveAs(path);
// Saving in DB
DBClass db = new DBClass();
//var postfrm = db.myFile.Add(upload);
//var postForm = db.myFile.Add(filee);
var postForm = (myFile)db.Database.SqlQuery<myFile>("uploadSP @fileName",
new SqlParameter("fileName",fileName)
).FirstOrDefault();
// /Saving in DB
ViewBag.uploadSuccessMessage = "File uploaded Succesfully";
}
}
else { ViewBag.uploadFailMessage = "Invalid File"; }
}
return View();
}
モデルコード:
namespace MyBook.Models {
public class myFile
{
[Key]
public Int64 fileId { get; set; }
public String fileName { get; set; }
}}