1
我是新来的asp.net mvc。我有指数方法与参数ID:在asp.net mvc参数问题
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);
}
现在,当我尝试从编辑重定向到指数我得到一个错误“的参数字典中包含不可为空型“系统参数‘ID’空项。 Int32'为'MVCServices.Controllers.CustomerserviceController'中的方法'System.Web.Mvc.ActionResult Index(Int32)'。一个可选参数必须是引用类型,可为空类型或声明为可选参数
[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来自另一个table.Can请让我知道我一直在做的错误以及如何解决它?
嘿。还有一件事是,我有一个链接,回到cshtml即视图...所以,你可以让我知道我怎么可以在控制器中使用相同的varibale – Sayamima 2011-06-09 03:37:12
你试图传递给视图的变量?以及哪种行动方法? – 2011-06-09 03:39:02
刚刚更新了上面的文本 – Sayamima 2011-06-09 03:41:11