2

MVC4 C# で Web サイトを作成しています。これにより、プロジェクトのフォルダー内のフォルダーにファイルをアップロードできます。何らかの理由で、コントローラーがアップロードされたファイルを見つけることができません。「db.music.Add(newsong)」は、曲のパスと名前を DB に追加しません。プロジェクトのビュー、コントローラー、モデルは次のとおりです。ご協力いただきありがとうございます!


Index.cshtml - 表示

@{
ViewBag.Title = "Index";
}

<h2>Your Music</h2>

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="file" id="file" >
    <input type="submit" />

MusicController.cs - コントローラー

[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{

   if (file.ContentLength > 0)
       {
            var fileName = Path.GetFileName(file.FileName);
            MVPDB db = new MVPDB();
            UploadMusic newsong = new UploadMusic();
            newsong.userId = 11;
            newsong.songName = file.FileName.ToString();
            newsong.songPath = Path.GetFileName(file.FileName).ToString();

            db.music.Add(newsong);
            db.SaveChanges();

            var path = Path.Combine(Server.MapPath("~/UserFiles/"), fileName);
            file.SaveAs(path);
        }

            return RedirectToAction("Index");
        }

Music.cs - モデル

namespace MVP.Models
{
public class Music
    {
        [Key]
        public int userId { get; set; }
        public string songName { get; set; }
        public string songPath { get; set; }

    }
public class UploadMusic
    {
        [Required]
        public int userId { get; set; }
        [Required]
        public string songName { get; set; }
        [Required]
        public string songPath { get; set; }


    }
}
4

1 に答える 1

4

フォームにアクションが含まれていません。これを試して

@using (Html.BeginForm("Index", "Music", FormMethod.Post, new { enctype = "multipart/form-data" }))
于 2013-06-12T04:49:33.893 に答える