Когда я пытаюсь выполнить оператор foreach, я получаю ссылку -Object, не установленную на экземпляр объекта

я работаю над проектом mvc. В моем контроллере я вызываю свою хранимую процедуру из класса терминов и возвращаю страницу Index, если она возвращает true, или возвращаю страницу terms, если она возвращает false.

Вызов хранимой процедуры на странице терминов:

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. так какую ошибку я здесь делаю? Мне нужна помощь..


person Raj    schedule 08.09.2013    source источник


Ответы (2)


Это некрасиво, но вы можете попробовать

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

 <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

Изменить: добавлен дополнительный аргумент для ссылки.

person Paddyd    schedule 08.09.2013
comment
Привет, если я перехожу к одинарной кавычке, я получаю эту ошибку: Недопустимые аргументы - person Raj; 08.09.2013
comment
Привет, это не работает. Снова показаны недопустимые аргументы. вы уверены, что у меня здесь проблемы? - person Raj; 09.09.2013