C# ASP.net序列不包含任何元素
我正在尝试制作一个网站,用户可以上传他们制作的jar文件,他们可以设置价格、标题、描述等。我已经准备好了,但是我忘了为插件添加一个图片。现在,我已经添加了一个点,他们可以上传插件图像以及。现在我得到了这个错误: 以下是我创建插件的方法:C# ASP.net序列不包含任何元素,c#,asp.net,asp.net-mvc,database,sequence,C#,Asp.net,Asp.net Mvc,Database,Sequence,我正在尝试制作一个网站,用户可以上传他们制作的jar文件,他们可以设置价格、标题、描述等。我已经准备好了,但是我忘了为插件添加一个图片。现在,我已经添加了一个点,他们可以上传插件图像以及。现在我得到了这个错误: 以下是我创建插件的方法: [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "Id,Name,UserId,Added,Updated,Price,Description,View
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,Name,UserId,Added,Updated,Price,Description,ViewCount,PluginFile,PluginPicture")] Plugin plugin)
{
if (!base.ModelState.IsValid)
{
return base.View(plugin);
}
Plugin plugin1 = (
from cp in this.db._Plugins
orderby cp.Id
select cp).ToList<Plugin>().Last<Plugin>();
int id = plugin1.Id + 1;
plugin.UserId = base.User.Identity.GetUserId();
plugin.SKU = string.Concat("PLG", id);
plugin.Added = new DateTime?(DateTime.Now);
plugin.Updated = new DateTime?(DateTime.Now);
string str = base.Server.MapPath("~//Content//Plugins//");
HttpPostedFileBase item = base.Request.Files["PluginFile"];
if (item != null)
{
item.SaveAs(string.Concat(str, Path.GetFileName(item.FileName.ToString())));
plugin.PluginFile = Path.GetFileName(item.FileName.ToString());
}
this.db._Plugins.Add(plugin);
this.db.SaveChanges();
HttpPostedFileBase httpPostedFileBase = base.Request.Files["PluginPicture"];
if (httpPostedFileBase != null)
{
string userId = base.User.Identity.GetUserId();
int num = (
from pl in this.db._Plugins
where (pl.Name == plugin.Name) && (pl.UserId == userId)
select pl.Id).SingleOrDefault<int>();
string str1 = base.Server.MapPath("~//Content//pluginimages//");
PluginsMediaPicture pluginsMediaPicture = new PluginsMediaPicture()
{
PluginId = num
};
httpPostedFileBase.SaveAs(string.Concat(str1, Path.GetFileName(httpPostedFileBase.FileName.ToString())));
pluginsMediaPicture.PluginPicture = Path.GetFileName(httpPostedFileBase.FileName.ToString());
this.db._PluginsMediaPictures.Add(pluginsMediaPicture);
this.db.SaveChanges();
}
return base.RedirectToAction("Index");
}
[ValidateAntiForgeryToken]
公共操作结果创建([Bind(Include=“Id,Name,UserId,Added,Updated,Price,Description,ViewCount,PluginFile,PluginPicture”)]Plugin-Plugin)
{
如果(!base.ModelState.IsValid)
{
返回base.View(插件);
}
插件插件1=(
来自此.db.\u插件中的cp
orderby cp.Id
选择cp.ToList().Last();
intid=plugin1.id+1;
plugin.UserId=base.User.Identity.GetUserId();
plugin.SKU=string.Concat(“PLG”,id);
plugin.Added=newdatetime?(DateTime.Now);
plugin.Updated=newdatetime?(DateTime.Now);
字符串str=base.Server.MapPath(“~//Content//Plugins//”;
HttpPostedFileBase item=base.Request.Files[“PluginFile”];
如果(项!=null)
{
SaveAs(string.Concat(str,Path.GetFileName(item.FileName.ToString()));
plugin.PluginFile=Path.GetFileName(item.FileName.ToString());
}
this.db.\u Plugins.Add(plugin);
this.db.SaveChanges();
HttpPostedFileBase HttpPostedFileBase=base.Request.Files[“PluginPicture”];
if(httpPostedFileBase!=null)
{
字符串userId=base.User.Identity.GetUserId();
整数=(
从这个.db.\u插件中的pl
其中(pl.Name==plugin.Name)&&(pl.UserId==UserId)
选择pl.Id);
字符串str1=base.Server.MapPath(“~//Content//pluginimages//”;
PluginsMediaPicture PluginsMediaPicture=新PluginsMediaPicture()
{
PluginId=num
};
SaveAs(string.Concat(str1,Path.GetFileName(httpPostedFileBase.FileName.ToString()));
pluginMediaPicture.PluginPicture=Path.GetFileName(httpPostedFileBase.FileName.ToString());
this.db.\u PluginsMediaPictures.Add(pluginsMediaPicture);
this.db.SaveChanges();
}
返回基。重定向到操作(“索引”);
}
看起来像是空的(从这个.db中的cp.\u Plugins orderby cp.Id选择cp)。ToList()
这样,当您调用.Last
时,它会抛出错误。如果可能为空,则需要编写防御代码以检查该情况,如果不可能,则开始调查该查询返回0结果的原因。好的,谢谢您的帮助。