所以我得到了这个正在研究的webproject,在4/5个视图中我正在使用
@Html.ActionLink("Back to List", "Index", new { id=Model.ClientID})
所有观点都会让我回到我的列表中,而不是我的“创建新视图” 这也是唯一一个不加载的视图,给我一个“System.NullReferenceException”的例外
我很困惑为什么这是唯一一个不允许我将clientID传递给它的视图(因为我不仅需要它而且还需要CountyID来创建一个新的县,而且更多地告诉我它是空。
如果我删除上面的代码行,我的代码运行正常(显然将我的2个ID字段添加到创建视图中)这让我觉得它可能是我的控制器。
这是我从givin controller for create
的行动 // 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.
我在这里做错了什么......
我的项目建立在一个层次模型上,One Client Many Countys(如果您需要更多代码,请告诉我)
提前感谢。
提示
必须有一个原因(我的假设)为什么在删除这行代码时它起作用(所以它必须是这行代码?) - 必须是一种不同的传递方式(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();
}
编辑:来自Countys Controller的新创建动作
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
答案 0 :(得分:2)
您似乎没有将模型传递给“创建”视图。在Create控制器中,您需要类似下面的内容,其中Client是具有ClientID属性的对象。
public ActionResult Create()
{
...
return View(Client);
}
编辑:
为了澄清,在您的“创建视图”中,模型为空,因为您没有在控制器中传递它。看一下有效的控制器,看看它传递给View的内容。你需要为Create做类似的事情。
答案 1 :(得分:1)
我会尽力总结你的问题。你说如果你删除
@Html.ActionLink("Back to List", "Index", new { id=Model.ClientID})
没有错误,当您的视图生成时会发生错误。这两个事实意味着99%的Model
为空
答案 2 :(得分:0)
在
中查看@ Html.ActionLink(“返回列表”,“索引”,新{id = Model.ClientID})
模型不为空,否则将获得空引用异常