我在 web api 中有一个方法,我从视图中调用它:
网页接口代码:
public CarProperties Post(CarProperties car)
{
if(car.file!=null)
{
var path = Path.Combine(Server.MapPath("~/Images/"), Path.GetFileName(car.file.FileName));
car.file.SaveAs(path);
}
new CarRepository().Save(car); //saves the file to database
return car;
}
模型:
public class Car{
public int Id {get; set;}
public string Name {get; set;}
public HttpPostedFileBase file {get; set;}
}
看法:
@using(Html.BeginForm("Save", "Home", FormMethod.Post, new {enctype = "multipart/form-data"}))
{
@Html.TextboxFor(model=>model.file, new { type = "file" })
@Html.TextboxFor(model=>model.Name)
<input type="submit" name="Submit" value="Submit"/>
@Html.ValidationSummary()
}
我得到模型中名称的值,但文件仅返回为 null。
如果我将 post 方法从 web api 控制器复制到 mvc 控制器,则同样的方法有效。我不明白为什么它在 web api 控制器中不起作用。