【发布时间】:2011-10-28 20:22:19
【问题描述】:
我正在使用带有 Razor 引擎的 ASP.NET MVC 3。我有一个包含一行的局部视图:
@Html.ActionLink(ViewData["UserNameIfLoggedIn"], "Index", "Home")
这个局部视图在我的_Layout.cshtml 视图中呈现。调用控制器/动作的 sn-p 是这样的:
@{Html.RenderAction("UserLoggedIn", "User");}
我收到一个编译错误,指出:
'System.Web.Mvc.HtmlHelper' 不包含'ActionLink' 的定义和最佳扩展方法重载'System.Web.Mvc.Html。 LinkExtensions.ActionLink(System.Web.Mvc.HtmlHelper, string, string, object)' 有一些无效参数
我在另一个 MVC 应用程序(教程)中进行了类似的调用(相同数量的参数和相同的参数数据类型),它执行得很好。这可能是什么原因造成的??为什么现在不起作用?
我知道这可能是一个非常菜鸟的 MVC 问题,但我无法弄清楚。
编辑:解决方案是这样的:
@Html.ActionLink(ViewData["UserNameIfLoggedIn"].ToString(), "Index", "Home")
我只需要调用ToString() 方法来获取字符串形式的参数。
【问题讨论】:
-
在您的另一个调用中,ActionLink 的第一个参数是 ViewData 对象吗?
-
@Xaisoft 你知道吗,它实际上是
"Some Text Here" + ViewData["key"],在这种情况下我猜ViewData["key"]被转换为一个字符串。很好的收获。 -
没问题,我有种感觉。祝你好运。
标签: c# asp.net asp.net-mvc asp.net-mvc-3 html-helper