我想在我的MVC视图中使用fileUpload,这是一个.aspx页面。 我想在Controller中获取一个对象的路径。
<% using (Html.BeginForm("AddClient","Client",FormMethod.Post,new {enctype ="multipart/form-data" }))
{ %>
<div class="float-left">
<%: Html.Label("BAAFile Path") %>
<br />
<input type="file" name="file" id="file" />
<%: Html.ValidationMessageFor(model => model.BAAFilePath) %>--%>
</div>
<% } %>
在页面底部有一个保存详细信息的按钮(fileupload控件旁边没有按钮)。
现在我想将fileupload控制的路径提取到我的控制器中。
[HttpPost]
[ButtonName(Name = "Save")]
public ActionResult AddClient(ClientService.ClientDto client,HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
// extract only the fielname
var fileName = Path.GetFileName(file.FileName);
}
}
现在我想获取文件路径
var fileName = Path.GetFileName(file.FileName);
成为“ClientService.ClientDto”的对象,即“client”。
client.BAAFilePath=fileName
但我将空数据转换为“var fileName”。
iam在“ActionResult AddClient(ClientService.ClientDto client)”中使用以下代码
if (file != null && file.ContentLength > 0)
{
// extract only the fielname
var fileName = Path.GetFileName(file.FileName);
}
我错过了什么吗?
答案 0 :(得分:1)
我建议将表单绑定到视图模型,然后将视图模型绑定到DTO。 您的视图模型应该具有类型为HttppostedFileBase的属性“File”,然后您可以在发布表单时正确绑定所有内容。 确保您的表单具有enctype =“multipart / form-data”