我正在尝试从我的应用程序上传文件,但它无法正常工作。我没有在动作方法中获得任何文件。
我的viewmodel如下所示
public class CallQueryViewModel
{
[Display(Name = "Attachment")]
public HttpPostedFileBase UploadFile { get; set; }
}
我的剃刀形式如下
@{
var ajaxOptions = new AjaxOptions
{
HttpMethod = "POST",
OnBegin = "onCallAddBegin",
OnSuccess = "OnCallCreateSuccess",
OnFailure = "OnCallCreateFailure"
};
}
@using (Ajax.BeginForm("AddCall", "CallHandling", ajaxOptions, new { @id = "CallAddForm", enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="row">
<div class="col-md-6">
<div class="form-group">
@Html.LabelFor(model => model.UploadFile, new { @class = "col-md-2" })
@Html.TextBoxFor(model => model.UploadFile, new { @class = "col-md-10", type="file" })
</div>
</div>
</div>
<div id="Submit">
<input type="submit" value="Save" class="btn btn-success" />
</div>
}
我的控制器动作方法如下。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AddCall(CallQueryViewModel model)
{
if ((model.UploadFile != null) && (model.UploadFile.ContentLength > 0))
{
// Upload file.
}
}
使用上面的代码,当我尝试上传文件时,我没有收到控制器操作方法中的任何文件。 UploadFile始终为空。
有人可以建议我缺少什么吗?