我是 asp.net mvc 的新手。我有参数 id 的索引方法:
public ActionResult Index(int id)
{
var dc = new ServicesDataContext();
var query = (from m in dc.Mapings
where m.CustomerID == id
select m);
// var a = dc.Customers.First(m => m.CustomerId == id);
// ViewData.Model = a;
// return View();
return View(query);
}
现在,当我尝试从编辑重定向到索引时,出现错误“参数字典包含方法'System.Web.Mvc.ActionResult Index(Int32'的不可空类型'System.Int32'的参数'id'的空条目)' in 'MVCServices.Controllers.CustomerserviceController'。可选参数必须是引用类型、可空类型或声明为可选参数。
[HttpPost]
public ActionResult Edit( FormCollection form)
{
var id = Int32.Parse(form["CustomerServiceMappingID"]);
var datacontext = new ServicesDataContext();
var serviceToUpdate = datacontext.Mapings.First(m => m.CustomerServiceMappingID == id);
TryUpdateModel(serviceToUpdate, new string[] { "CustomerID", "ServiceID", "Status" }, form.ToValueProvider());
if (ModelState.IsValid)
{
try
{
var qw = (from m in datacontext.Mapings
where id == m.CustomerServiceMappingID
select m.CustomerID).First();
datacontext.SubmitChanges();
//return Redirect("/Customerservice/Index/qw");
return RedirectToAction("Index", new { qw = qw });
}
catch{
}
}
return View(serviceToUpdate);
}
这是视图:
@Html.ActionLink("Back to List", "Index")
Index 方法中的 id 原来是从另一个控制器获取的 customerid,而 Edit 中的 id 来自另一个表。您能告诉我我一直在做的错误以及如何解决它吗?