当我尝试执行foreach语句时,我得到-Object引用未设置为对象的实例

时间:2013-09-08 18:46:15

标签: asp.net-mvc stored-procedures asp.net-mvc-controller

我正在研究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循环。那我在这做什么错?我需要帮助..

2 个答案:

答案 0 :(得分:1)

这很难看,但你可以试试

<div class="Page"  onclick='location.href=&quot;@Url.Action("Info", new { id = item.ID       })&quot;'>

答案 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

周围的引号

修改 为链接添加了额外的参数。