流在我的朋友PC上意外结束,但不是我的。 .Net Core,SQL

时间:2018-10-30 13:06:26

标签: .net sql-server browser .net-core runtime-error

正如标题所述,我的朋友在我创建的网站上遇到此错误。 当他试图将Car添加到数据库中时。

错误: enter image description here

他给我发了这张照片。

这辆车有这些道具:

 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);
    }

问题可能是什么? 非常感谢每个答案。

1 个答案:

答案 0 :(得分:0)

这表明他的网络浏览器确实很旧。

因此,如果有人遇到此错误并正在使用multi属性。检查浏览器版本。