2013-05-06 42 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(); 
     } 

我用Google搜索,发现类似HTML.ActionLink method

一些链接,但我仍然无法纠正。

回答

0

您致电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})

这一行是我的答案.. – 2013-05-06 11:11:57