<a href="@Url.Action("LinkedDetails",
new
{
controller = "LGDetails",
findByString = item.AccounNumber
})">@item.LastName</a>
这正是我想要的。尝试使用HtmlActionLink完成相同的操作会导致一个错误或另一个错误,无论我尝试了什么:
@Html.ActionLink(item.LastName,
"../LGDetails/LinkedDetails",
new
{
controller = "LinkedDetails",
findByString = item.AccounNumber
})
结果:值不能为null或为空。 参数名称:linkText
尝试这样:
@Html.ActionLink(Model.LastName .....
System.Collections.Generic.IEnumerable'不包含'LastName'的定义,并且没有扩展方法'LastName'接受类型'System.Collections.Generic.IEnumerable'的第一个参数可以找到(你错过了吗?使用指令或程序集引用?)
等等总是其中一个错误。
是的,我尝试了这里建议的每一件事,并在其他地方发现了相同数量的其他事情(这就是我找到了我使用的答案,它是由另一个有同样问题的人发布的。)
尽管进行了大量的搜索,但我似乎无法弄清楚如何做似乎应该是基本的事情。
这很好用:
@Html.DisplayFor(modelItem => item.LastName)
但我想将LastName字段显示为Html.ActionLink中的链接文本,如下所示:
@Html.ActionLink(item.LastName, "blah", "blah")
但没有任何作用。像上面这样做会给我一个编译错误:
方法的类型参数 “System.Web.Mvc.Html.DisplayExtensions.DisplayFor(System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression&GT)” 无法从使用中推断出来。尝试指定类型参数 明确地
我试过这样的话:
@Html.ActionLink(@Html.DisplayFor(modelItem => item.LastName), "blah", "blah")
以及嵌套的其他变体。这也不起作用(不会编译),错误“没有用于actionlink的重载方法......”
我觉得这应该很简单。是的,我是C#和MVC的新手。
答案 0 :(得分:4)
您需要使用Html.ActionLink
的重载:
@Html.ActionLink(string LinkText,string ActionName,string ControllerName)
这样做:
@Html.ActionLink(Model.LastName, "ActionName","ControllerName")
<强>更新强>
然后这样做,因为你的模型是IEnumerable:
@foreach(var item in Model)
{
@Html.ActionLink(item.LastName, "ActionName","ControllerName")
}
如果模特是这样的单身:
@model MyCompany.LGCustData
然后它应该是这样的:
@Html.ActionLink(Model.LastName, "ActionName","ControllerName")
答案 1 :(得分:2)
@Html.ActionLink(@Model.AccounNumber....)
可以防止有人像我一样最终出现在这里。
答案 2 :(得分:0)
这是关于如何使用actionlink
的breaf描述Html.ActionLink("link title",
"ActionMethod",
"ControllerName",
null, // <-- Route arguments.
null // <-- htmlArguments
)
尝试这样的事情:
@Html.DisplayFor(Model.LastName, "actionMethod","controllerName",new{Model.LastName});
*如果您要根据标准惯例向路线添加一些参数:
/controller/action/parameter
,否则
@Html.DisplayFor(Model.LastName, "actionMethod","controllerName");
答案 3 :(得分:0)
对我来说,我只需转换&#34;动态文字&#34;在具有String.Format()
功能的字符串之前
<ul>
@foreach (var user in ViewBag.users )
{
string complete_name = String.Format("{0} {1}", user.Firstname, user.Lastname);
<li>@Html.ActionLink(complete_name, "Details", new { Id = user.Id })</li>
}
</ul>
在我的电脑上,它工作得很好。
答案 4 :(得分:0)
只需使用
@Html.ActionLink(Html.DisplayNameFor(model => model.LastName).ToHtmlString(), "blah", "blah")