【发布时间】:2015-12-02 00:21:45
【问题描述】:
我有问题,我想是因为我不知道如何在 mvc 中使用路由。
参数字典包含“LawApplication.Controllers.ClientFolderController”中方法“System.Web.Mvc.ActionResult Index(Int32)”的不可为空类型“System.Int32”的参数“clientId”的空条目。可选参数必须是引用类型、可空类型或声明为可选参数。 参数名称:参数
在我的应用程序中,我有一个客户端列表,并且 foreach 客户端具有编辑/删除/详细信息/文件夹。每个客户端都有一个文件夹列表,每个文件夹都有一个文件/文档列表。所以,我有一个控制器 ClientController 和一个 ClientFolderController。当我访问“文件”按钮时,要查看客户端的文件夹列表,我正在使用:
<button class="btn btn-info">@Html.ActionLink("Folders", "Index", "ClientFolder", new { clientId = item.Id }, null)</button>
所以我可以获取该 clientId 的文件夹。 ClientFolderController 看起来像这样:
public ActionResult Index(int clientId)
{
List<ClientFolder> folder = dbContext.ClientFolders.Where(c => c.ClientId == clientId).ToList();
return View(folder);
}
当我尝试添加该特定 clientId 的新文件夹时
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(ClientFolder folder)
{
using (dbContext)
{
folder.ClientId = 2;
dbContext.ClientFolders.Add(folder);
dbContext.SaveChanges();
}
return RedirectToAction("Index");
}
【问题讨论】:
-
你的错误信息提示
item.Id是null -
ClientFolder.ClientId是什么类型?它可以为空吗? -
ClientId 不为空,是来自客户端的外键,输入 int 。
标签: c# asp.net asp.net-mvc asp.net-mvc-4