MVC删除 问题
大家帮看一下这样有什么 错,NewsInfoTable 是表。删除 的时候 就是能把数据 传到页面,但是点确定 删除 的时候 就不行,ID没有传得过去:
C# code
public ActionResult Delete(int id)
{
myComputerDataContext db = new myComputerDataContext();
var q = db.NewsInfoTable.First(o => o.NewsID == id);
return View(q);
}
[HttpPost]
//[AcceptVerbs(HttpVerbs.Delete)]
public ActionResult Delete(NewsInfoTable n)
{
myComputerDataContext db = new myComputerDataContext();
var a = db.NewsInfoTable.First(o => o.NewsID == n.NewsID);
db.NewsInfoTable.DeleteOnSubmit(a);
db.SubmitChanges();
return RedirectToAction("NewsXinGai");
}
错误提示 : var a = db.NewsInfoTable.First(o => o.NewsID == n.NewsID);
用户代码未处理 System.InvalidOperationException
Message=序列不包含任何元素
Source=System.Data.Linq
StackTrace:
在 System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult)
在 System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries)
在 System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
在 System.Data.Linq.Table`1.System.Linq.IQueryProvider.Execute[TResult](Expression expression)
在 System.Linq.Queryable.First[TSource](IQueryable`1 source, Expression`1 predicate)
在 ComputerProduct.Controllers.NewsController.Delete(NewsInfoTable n) 位置 E:\MVC实训\ComputerProduct\ComputerProduct\Controllers\NewsController.cs:行号 97
在 lambda_method(Closure , ControllerBase , Object[] )
在 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
在 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
在 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
在 System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a()
在 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
InnerException:
------解决方案--------------------
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Delete(string id)
{
var model = student.StudentInfo.First(c => c.StuId == id);
student.DeleteObject(model);
student.SaveChanges();
return RedirectToAction("Index");
}
楼主看一下这是我做的,StudentInfo是表。
id没传过来,你看看那个删除的链接是不是类似这个样子的:
@Html.ActionLink("删除", "Delete", new { id=item.StuId },new{onclick="return confirm('确定要删除吗');"})红字是提示你是否删除,其实你没必要写两个删除的Action,你删除还要像修改那样跳转页面吗???
一个Action足矣