【发布时间】:2022-01-11 23:30:09
【问题描述】:
我在 ASP.NET MVC 中添加图像时遇到了一点问题。我在我的根文件夹中创建了一个名为 /Images/Brands/ 的文件夹,我想在其中保存我的品牌模型的图像。
这是我的Brand 模型:
namespace AspProjectBootstrap.Models
{
public class Brand
{
public int ID { get; set; }
[Required]
public String Name { get; set; }
[Required]
public String Description { get; set; }
public virtual ICollection<Product> Products { get; set; }
public String ImagePath { get; set; }
[NotMapped]
public HttpPostedFileBase ImageFile { get; set; }
}
}
我看到有些人将模型类中的路径保存为ImagePath,然后在需要时从ImagesPath 获取图像的完整路径。
这是我创建品牌的功能:
public ActionResult Create(Brand brand)
{
string filename = Path.GetFileName(brand.ImageFile.FileName);
filename = DateTime.Now.ToString("yymmssfff") + filename+".png";
brand.ImagePath = "~/Images/Brands/" + filename;
filename = Path.Combine(Server.MapPath("~/Images"), filename);
brand.ImageFile.SaveAs(filename);
if (ModelState.IsValid)
{
db.Brands.Add(brand);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(brand);
}
但我得到一个错误。
如果您知道如何解决此问题,或任何其他方法来完成此任务。
提前谢谢你。
错误是:
创建Create.cshtml 视图是:
<div class="form-group">
@Html.LabelFor(model => model.ImagePath, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<input type="file" name="ImageFile" />
</div>
</div>
【问题讨论】:
-
错误是什么?
-
图像没有添加到文件夹中,并给我错误 brand.ImageFile.SaveAs(filename);
-
你说“但它给了我一个错误。” - 错误说明了什么?
-
System.NullReferenceException : 'La référence d'objet n'est pas définie à une instance d'un object.' AspProjectBootstrap.Models.Brand.ImageFile.get retournée null.
-
Edit 请回答您的问题。我建议使用调试器单步执行代码以查找空引用的位置。
标签: c# .net sql-server asp.net-mvc entity-framework