c# - Html.ActionLink() 调用错误

标签 c# asp.net asp.net-mvc asp.net-mvc-3 html-helper

我正在使用 ASP.NET MVC 3 和 Razor 引擎。我有一个包含一行的部分 View :

@Html.ActionLink(ViewData["UserNameIfLoggedIn"], "Index", "Home")

此部分 View 在我的 _Layout.cshtml View 中呈现。调用 Controller /操作的代码片段是这样的:

@{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 是一个字典。

尝试一下这只是一个测试

@Html.ActionLink("test", "Index", "Home")

如果可行,那么您需要循环 ViewData 并获取所有单个值,并将它们作为字符串传递。不过,我不确定你的 ViewData 是什么。

如果您只需要单个值,请改用 ViewBag。

http://brendan.enrick.com/post/Difference-Between-ViewBag-and-ViewData-in-MVC-3.aspx

关于c# - Html.ActionLink() 调用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7934479/

相关文章:

c# - 如何处理 WPF 验证和 MVVM?

c# - linq Except 和自定义 IEqualityComparer

c# - 如何在 ASP .Net 中调整屏幕尺寸

javascript - Visual Studio 2010 不会在 javascript 的断点处中断

mysql - 如何在 mysql 过程中读取字典数据

c# - 温莎城堡 (IOC) 基础知识

c# - 如何从 php 调用我的 asp.net web 服务?

c# - 从 3.1.4 范围更新身份服务器 4 4.0.0 后,使用 Mongo DB 的 asp.net core 3 无效

asp.net-mvc - EPPlus 失去行高

c# - System.Web.Caching.Cache Dispose 对象是否从缓存中清除?