正如标题所述,我的朋友在我创建的网站上遇到此错误。 当他试图将Car添加到数据库中时。
他给我发了这张照片。
这辆车有这些道具:
public class CarModel
{
[Key]
public int Id { get; set; }
[DisplayName("Årsmodel")]
public int Year { get; set; }
[DisplayName("Märke")]
[StringLength(100)]
public string Brand { get; set; }
[DisplayName("Modell")]
[StringLength(160)]
public string Model { get; set; }
[DisplayName("Hästkrafter")]
public int HorsePower { get; set; }
[DisplayName("Färg")]
[StringLength(160)]
public string Color { get; set; }
[DisplayName("Fyrhjulsdrift")]
public bool IsFourWheelDrive { get; set; }
[DisplayName("Pris")]
[Range(0,int.MaxValue)]
public int Price { get; set; }
[DisplayName("Övrigt/Beskrivning")]
[StringLength(1000)]
public string Description { get; set; }
[DisplayName("Miltal")]
public int Miles { get; set; }
[DisplayName("Bränsle")]
public string Fuel { get; set; }
[DisplayName("Automatlåda")]
public bool IsAutomatic { get; set; }
[DisplayName("Bilder")]
public List<PicturePathModel> Pictures { get; set; }
[DisplayName("Är bilen påväg?")]
public bool IsOnTheWay { get; set; }
}
PicutePathModel只是一个具有图像路径的模型。
填写的表单有12个输入(字符串,整数和布尔值) 和一个文件选择器。
我的猜测是该错误来自文件选择器。
为什么他会得到这些错误而不是我?是因为他的电脑较旧吗? 他的浏览器不支持文件选择器吗?
这是控制器方法:
[HttpPost]
public async Task<IActionResult> CreateCar(CreateCarVM VM)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var CarToSave = VM.Car;
if (VM.Images != null)
{
string webRootPath = _hostingEnvironment.WebRootPath;
var listOfPaths = new List<PicturePathModel>();
var randomName = Guid.NewGuid().ToString();
var SaveFileIn = Path.Combine(webRootPath, "images", randomName);
var pathToSaveFileIn = "/images/"+randomName;
Directory.CreateDirectory(SaveFileIn);
foreach (var file in VM.Images)
{
if (file.Length > 0)
{
var path = new PicturePathModel()
{
Path = Path.Combine(pathToSaveFileIn, file.FileName)
};
using (var stream = new FileStream(Path.Combine(SaveFileIn, file.FileName), FileMode.Create))
{
await file.CopyToAsync(stream);
}
path.CarModelId = VM.Car.Id;
Console.WriteLine(pathToSaveFileIn);
listOfPaths.Add(path);
_context.Pictures.Add(path);
}
}
CarToSave.Pictures = listOfPaths;
}
//Save the car.
_context.CarModels.Add(CarToSave);
await _context.SaveChangesAsync();
return View(VM);
}
问题可能是什么? 非常感谢每个答案。
答案 0 :(得分:0)
这表明他的网络浏览器确实很旧。
因此,如果有人遇到此错误并正在使用multi属性。检查浏览器版本。