2013-05-06 6 views
0

Я не очень-то знаком с razor просматривать двигатель. Я пробовал этот код.Доступ к базе данных в asp.net

@for(var item in ViewBag.list) 
{ 
    @foreach (var itemvote in ViewBag.listVote) 
    { 
     <h1>@Html.ActionLink(@item.Title, "Details", "Report", new { id = item.Id},null)</h1> 
    } 
} 

And it shows the following error:

Компилятор Сообщение об ошибке: CS1973: «System.Web.Mvc.HtmlHelper» не имеет применимый метод, названный «ActionLink», но, как представляется, метод расширения с таким именем. Методы расширения не могут динамически отправляться. Рассмотрите возможность использования динамических аргументов или вызова метода расширения без синтаксиса метода расширения.

мой класс контроллера ReportController и способ Details, которому он будет отправлен.

public ActionResult Details(int id = 0) 
     { 
      Report report = Context.Reports.Find(id); 
      if (report == null) 
      { 
       return HttpNotFound(); 
      } 
      ViewBag.report = report; 

      return View(); 
     } 

Я гугле и нашел ссылку, как HTML.ActionLink method

, но я до сих пор не в состоянии исправить.

ответ

0

Есть как минимум 2 проблемы с вашим вызовом actionlink.

Во-первых, для первого параметра не требуется «@», потому что вы уже используете его в начале строки с помощью @ Html.ActionLink.

Во-вторых, первый параметр должен быть itemvote.Title не item.Title, так как у вас нет переменной, называемой item.

Это может быть частью вашей проблемы, потому что компилятор не может понять, что @ item.Title должна быть строка, и есть действительная подпись ActionLink(string, string, string, Object, Object)

+0

я решил эту проблему и

@Html .ActionLink ((string) @ item.Title, "Details", new {id = item.Id})

эта строка - мой ответ .. –

Смежные вопросы