asp.net-mvc - 在实体框架和 ASP.NET MVC 中使用模型和 httppostedfilebase 时出现 NullException
问题描述
这是我的模型
public ActionResult Create(CONTENTTABLE cONTENTTABLE, HttpPostedFileBase contentfile)
{
if (ModelState.IsValid)
{
string path = Server.MapPath("/UserContentFiles/");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
contentfile.SaveAs(path + Path.GetFileName(contentfile.FileName));
cONTENTTABLE.CONTENTFILEPATH = path + Path.GetFileName(contentfile.FileName).ToString();
db.CONTENTTABLEs.Add(cONTENTTABLE);
db.SaveChanges();
return RedirectToAction("Index");
}
}
这是我的看法
@using (Html.BeginForm("Create", "CONTENTTABLEs", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>CONTENTTABLE</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
//another input group
<div class="form-group">
<label>FILE</label>
<input type="file" name="CONTENTFILEPATH" id="CONTENTFILEPATH" class="form-control" />
@Html.ValidationMessageFor(model => model.CONTENTFILEPATH, "", new { @class = "" })
</div>
//another input group
<input type="submit" value="Create" class="btn btn-default" />
</div>
}
这是我的模型
public string CONTENTFILEPATH { get; set; }
//public HttpPostedFileBase CONTENTFILEPATH2 { get; set; }
但是在执行上传时,我得到一个错误
用户代码未处理 NullReference
在控制器代码行:
contentfile.SaveAs(path + Path.GetFileName(contentfile.FileName));
看起来contentfile
是空的:(
我一直在尝试很多方法,更换模型,所以现在的模型包括 httppostfile 基础,但它仍然不能解决问题。还有另一个。
你能给我一些参考吗?
谢谢
解决方案
通过这种方式,您的问题将得到解决
将模型更改为
public HttpPostedFileBase CONTENTFILEPATH { get; set; }
您将需要导入以下命名空间。
using System.IO;
在你的控制器中
[HttpPost]
public ActionResult Index(HttpPostedFileBase contentfile)
{
if (ModelState.IsValid)
{
string path = Server.MapPath("~/UserContentFiles/");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
if (contentfile != null)
{
string fileName = Path.GetFileName(contentfile.FileName);
contentfile.SaveAs(path + fileName);
CONTENTTABLE cONTENTTABLE=new CONTENTTABLE();
cONTENTTABLE.CONTENTFILEPATH = path + fileName
db.CONTENTTABLEs.Add(cONTENTTABLE);
db.SaveChanges();
}
return RedirectToAction("Index");
}
}
推荐阅读
- python - Django rest框架ajax表单提交错误403(禁止)
- python - 使用要获取的列名列表构建 psycopg2 查询
- android - 有时Provider在flutter中匿名注册后不会触发
- sql-server - 如何使用 SSMS 连接到 Hadoop?
- python - 从当前 UNIX 日期时间中减去时间并使用变量来更新 url GET 响应
- python - 如何在大型代码库中查找两个对象 Django 之间的关系
- node.js - 使用硒时电子应用程序中的mqtt nodejs库速度很慢
- python - 如何使用 windows 7 将 python 脚本转换为 exe 以在 mac 中运行
- c# - 使用 Oculus 耳机在统一 VR 中缩放运动
- r - 在 R 包中的函数之间传递值