【发布时间】:2013-07-02 13:33:10
【问题描述】:
所以我得到了我正在处理的这个 web 项目,并且在 4/5 视图中我正在使用
@Html.ActionLink("Back to List", "Index", new { id=Model.ClientID})
除“创建新视图”外,所有视图都将我返回到我的列表 这也是唯一不加载的视图,给我“System.NullReferenceException”的例外
我很困惑为什么这是唯一一个不允许我将 clientID 传递给它的视图(因为我不仅需要它,还需要 CountyID 来创建一个新的县,而且更多地告诉我它是空。
如果我删除上面的代码行,我的代码运行良好(显然将我的 2 个 ID 字段添加到创建视图中)这让我认为它可能是我的控制器。
这是我从给控制器创建的操作
// GET: /County/Create
public ActionResult Create()
{
return View();
}
为了比较,这里是同一个控制器中的编辑动作
public ActionResult Edit(int id = 0)
{
dbCounty countys = db.Countys.Find(id);
if (countys == null)
{
return HttpNotFound();
}
return View(countys);
}
我也尝试将此代码添加到创建新操作链接中,当我收到此错误时
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Most likely causes:
The directory or file specified does not exist on the Web server.
The URL contains a typographical error.
A custom filter or module, such as URLScan, restricts access to the file.
我在这里做错了什么......
我的项目建立在一个层次模型上,一个客户多个县(如果您需要更多代码,请告诉我)
提前致谢。
提示:
必须有一个原因(我的假设)为什么在删除这行代码时它可以工作(所以它必须是这行代码??) - 必须是一种不同的传递方式(clientID 的值确实为 1 )
@Html.ActionLink("Back to List", "Index", new { id=Model.ClientID})
需要编辑索引控制器:
public ActionResult Index([Bind(Prefix="id")] int CID=0)
{
var clnt = db.Clients.Find(CID);
if (clnt != null)
{
return View(clnt);
}
return HttpNotFound();
}
编辑:县控制器的新创建操作
public ActionResult Create(int id=0)
{
dbCounty countys = db.Countys.Find(id);
if (countys == null)
{
return HttpNotFound();
}
return View(countys);
}
我也试过跑步
public ActionResult Create(int id=0)
{
dbClient Client = db.Clients.Find(id);
if (Client == null)
{
return HttpNotFound();
}
return View(Client);
}
(因为我传递了一个 clientID - 模型的构建方式应该在使用 clientID(passedVariable) 在数据库中创建这个新行时添加一个县 ID
【问题讨论】:
标签: c# asp.net-mvc variables actionlink