我有一个MVC控制器,其动作返回一个字符串。我希望我的Action链接将此返回的字符串作为名称。在我看来,任何人都可以建议如何做到这一点吗?我在我的视图中编写了标记代码,我认为可以做到这一点,但我想我错了。
@if (Request.IsAuthenticated)
{
string returnedstr = @Html.Action("_MessagePartial", "UserMessage");
@Html.ActionLink(returnedstr, "Index", "UserMessage")
}
答案 0 :(得分:1)
有一个MVC控制器,其动作返回一个字符串。
这是一个问题。在ASP.NET MVC控制器操作中,返回ActionResults,而不是字符串。这就是为什么Html.Action助手不会按照你的想法做到的。
我希望我的Action链接将此返回的字符串作为名称。
您可以使用自定义帮助程序而不是将返回所需字符串的控制器操作:
public static class Helpers
{
public static string GetName(this HtmlHelper html)
{
// do something and ...
return "some name";
}
}
并在您看来:
@if (Request.IsAuthenticated)
{
@Html.ActionLink(Html.GetName(), "Index", "UserMessage")
}
或者只是在视图模型上将其设为属性:
@if (Request.IsAuthenticated)
{
@Html.ActionLink(Model.SomeName, "Index", "UserMessage")
}
然后让服务于此视图的控制器操作只是填充视图模型上的相应属性。