无法让@ Ajax.ActionLink在局部视图中工作,得到"无法解决#34;错误

时间:2014-07-18 12:14:26

标签: asp.net-mvc asp.net-mvc-3 razor asp.net-ajax

我正在使用MVC3,ASP.NET 4.5,C#,Razor。

我已经成功地从我的主页面上运行了Ajax.ActionLink,其中包含一个表和记录,每个表都包含一个链接。 Ajax.ActionLink“替换”元素内所有单元格中的记录。我使用局部视图来替换:

<td>col1</td><td>col2</td>

但是col1应该保留Ajax.Actionlink,因为它将再次被要求,所以我的部分视图应该是:

<td>@Ajax.ActionLink("Delete",...)</td><td>col2</td>

但我得到了

  

“无法解析符号ActionLink”

错误。

我在局部视图中缺少引用。我确实尝试过System.Web.MVC.Ajax,但这次失败了。

感谢您的帮助。

EDIT1:

似乎没有问题:

@Html.ActionLink(...)

EDIT2:

完整的ActionLink代码:

                    @Ajax.ActionLink("Delete",
                                 "AjaxDelete",
                                 "Order",
                                 new {id = ViewBag.id},
                                 new AjaxOptions {
                    UpdateTargetId = ViewBag.rowname,
                    InsertionMode = InsertionMode.Replace,
                    HttpMethod = "GET"
                                 });

1 个答案:

答案 0 :(得分:1)

错误消息具有误导性。编译器无法从动态属性创建匿名类型,因为它不知道它是什么类型。

(int)添加ViewBag.id强制转换,以强制键入匿名字段。

同样对Viewbag.rowname做同样的事情(字符串我假设?)

e.g。

 @Ajax.ActionLink("Delete",
               "AjaxDelete",
               "Order",
               new {id = (int)ViewBag.id},
               new AjaxOptions {
               UpdateTargetId = (string)ViewBag.rowname,
               InsertionMode = InsertionMode.Replace,
               HttpMethod = "GET"
               });