【发布时间】:2019-09-17 20:50:44
【问题描述】:
我正在尝试使用以下代码在 asp.net mvc 5 应用程序中上传文件。
请查看 cshtml 和模型类并指导我缺少什么。它总是为 HttpPostedFilebase 返回 null 。
cshtml:
<form action="@Url.Action("send-message", "users", new { area = "security" })" class="form-horizontal" method="POST" data-async data-target="#send-message-modal" enctype="multipart/form-data">
<div class="row">
<div class="col-md-12">
@Html.TextBoxFor(m => m.Email, new { placeholder = "Select the recipient...", @class = "form-control form-group-margin" })
@Html.HiddenFor(m => m.RecipientId)
</div>
</div>
@Html.TextBoxFor(m => m.Title, new { placeholder = "Enter a subject", @class = "form-control" })
@Html.ValidationMessageFor(m => m.Title)
@Html.TextAreaFor(m => m.Message, new { placeholder = "Enter your message", @class = "form-control", rows = 5 })
@Html.ValidationMessageFor(m => m.Message)
@Html.TextBoxFor(m => m.FileNew, new { type = "file", @class = "form-control", name= "FileNew" })
<br/>
@Html.ValidationMessageFor(m => m.FileNew)
<div class="panel-footer text-right no-padding-hr no-padding-b">
<button class="btn btn-primary">Send message</button>
</div>
</form>
视图模型:
public class SendMessageModel
{
[Display(Name = "Recipient")]
[DataType(DataType.EmailAddress)]
[StringLength(255)]
public string Email { get; set; }
[Required]
[Display(Name = "Recipient")]
public int RecipientId { get; set; }
[DataType(DataType.Text)]
[Required]
[Display(Name = "Message")]
public string Message { get; set; }
public bool IsSent { get; set; }
[DataType(DataType.Text)]
[Required]
[Display(Name = "Subject")]
public string Title { get; set; }
public HttpPostedFileBase FileNew { get; set; }
}
Mvc 动作:
[ActionName("send-message")]
[HttpPost]
public ActionResult SendMessage(SendMessageModel model)
{
}
【问题讨论】:
-
如何提交表单?将 更改为 可能会有所帮助。
标签: c# razor file-upload asp.net-mvc-5 httppostedfilebase