だから私は持っているViewModelに(私は、関連するコードをポスト)
public class SubcategoryViewModel
{
public HttpPostedFileBase PdfFile { get; set; }
[DisplayName("PDF")]
public string Pdf { get; set; }
}
コントローラー:
public async Task<string> CreateSubcategory(SubcategoryViewModel model)
{
string pdf = null;
if (model.Pdf != null)
{
pdf = Guid.NewGuid().ToString().Substring(0, 13) + "_" + model.File.FileName;
model.Pdf = pdf;
var path = Path.Combine(HttpContext.Current.Server.MapPath("~/Content/pdf"), pdf);
model.File.SaveAs(path);
}
var subcategory = new Subcategory
{
Pdf = pdf,
};
db.SubcategoriesList.Add(subcategory);
await db.SaveChangesAsync();
ビュー:
@model Models.ViewModels.SubcategoryViewModel
@using (Html.BeginForm("Create", "Subcategory", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="form-group">
@Html.LabelFor(model => model.Pdf, new { @class = "control-label col-md-2" })
<div class="col-md-10 legend-size">
<input type="file" id="file" name="file" />
</div>
</div>
私がアクション投稿をしたときモデルに何も受け取られていません.PDF、if (model.Pdf != null)
バリデーションにはnullがありますが、理由はわかりません
なぜそれが発生するのでしょうか?前もって感謝します!
あなたの質問は不明です。あなたのフォームにはプロパティ 'Pdf'のフォームコントロールがありませんので、投稿時に常に' null'になります(ただし、どうしてその値を投稿する必要があるのか不明です) –
ユーザーからpdfファイルをアップロードして保存したいそれをパスに入れてから、私のインデックスビューで@StephenMueckeを表示させたい。 – Gerry
公開ストリングPdf {get;セット; }?ファイル名? – MichaelMao