我正在研究mvc项目。在我的控制器中,我从术语类调用我的存储过程,如果返回true,则返回索引页面,如果返回false,则返回 terms 页面。
在术语页面中调用存储过程:
public class Accept
{
public void Check()
{
using (var ctx = new termsEntities())
{
ctx.usp_ChkTerms(8, new ObjectParameter("Accepted", typeof(bool)));
ctx.SaveChanges();
}
}
}
现在我在我的控制器中调用它:
public ActionResult App()
{
// calling Stored procedure from Model to class
var accept = new Accept();
accept.Check();
// checking if accepted is true then return view else return another view
AppEntities Accepted = new AppEntities();
AppTerm user = new AppTerm();
AppHist history = new AppHist();
user = (from AppTerm app in Accepted.AppTerms
where app.userID == 8
select app).ToList().FirstOrDefault();
if (user != null)
{
if (user.Accepted)
{
return View("Index");
}
else
{
return View("terms");
}
}
这是我在我的观点视图中使用的代码:
@{
ViewBag.Title = "terms";
}
<html>
<body>
<ul>
@foreach ( var item in Model)
{
<div class="Page" onclick="location.href='@Url.Action("Info", new { id = item.ID })'">
span class="Col1">
<br />
@item.ID
</span>
<span class="Title">@item.Name</span>
}
</ul>
</body>
</html>
这里当条件为真时它显示索引页面,但当条件下降时,当它试图显示术语页面时,我得到对象引用未设置为对象的实例,错误指向foreach循环。那我在这做什么错?我需要帮助..
答案 0 :(得分:1)
这很难看,但你可以试试
<div class="Page" onclick='location.href="@Url.Action("Info", new { id = item.ID })"'>
答案 1 :(得分:0)
<div class="Page" onclick="location.href='@Url.Action("Info", new { id = item.ID })'">
将其更改为:
<div class="Page" onclick="location.href='@Url.Action('LinkText','Info', new { id = item.ID })'">
请注意Info
修改强> 为链接添加了额外的参数。