MVCで一括挿入作業中です。テキストフィールドとファイル(画像)を挿入したいと思います。ファイルアップロード者(入力=ファイル)からMVCでモデル化する方法
HttpPostedFileBase []でファイルを取得しています。
しかしモデル(写真)はnullを示しています。
モデル: -
public partial class User_Image
{
public int SrNo { get; set; }
public string Name { get; set; }
public string Photo { get; set; }
}
ビュー: -
@if (Model != null && Model.Count > 0)
{
int j = 0;
foreach (var i in Model)
{
<tr>
<td>@Html.TextBoxFor(a => a[j].SrNo, new { @Value = Session["SrNo"], @class = "currnent_srno", @readonly = "true" })</td>
<td>@Html.TextBoxFor(a => a[j].Name, new { @required = "required", @class = "myclass" })</td>
<td>@Html.TextBoxFor(a => a[j].Photo, new { type = "file", @class = "fileuploader", @required = "required" })</td>
</tr>
}
}
コントローラのアクション: -
[HttpPost]
public ActionResult BulkData(List<User_Image> ci, HttpPostedFileBase[] file, FormCollection fc)
{
if (ModelState.IsValid)
{
using (TestEntities dc = new TestEntities())
{
foreach (var i in ci)
{
dc.User_Image.Add(i);
}
dc.SaveChanges();
ViewBag.Message = "Data successfully saved!";
}
}
}
jQueryの: - (すべての入力ファイルの名前ATTRを追加する)
$('input[type="file"]').attr('name', 'file');
model-view-controllerタグは、パターンに関する質問用です。 ASP.NET-MVCの実装には特定のタグがあります。 –
あなたがここで何をしようとしているかは非常に不明です。 'Photo'のフォームコントロールを生成することはありませんので、POSTメソッドでは常に' null'になります。あなたのファイルをアップロードしますが、どこにも保存しないので、ファイルは失われます。あなたはそれらをファイルサーバーに保存し、そのファイル名をデータベースに保存したいと思っていますか?いずれにしても、自分のやっていることを説明するために質問を編集してください(現在行っていることはほとんどMVCでなく、書き直す必要があります) –