c# - 将@Url.Action 存储在变量中
问题描述
我正在开发一个 ASP.NET MVC4 项目。
在我的一个观点中,我试图将@Url.Action
结果存储在字符串变量中,并将其传递给<a href="..."></a>
链接。
我得到了一些奇怪的结果:
- 当我的
if...else
块出现在下面的代码片段中时,第二个赋值会actionHelper
引发以下消息:Argument 3: cannot convert from '<anonymous type: int i, int page>' to 'System.Web.Routing.RouteValueDictionary'
并且<a href="@actionHelper">
操作会引发以下错误:Argument 4: cannot convert from 'object' to 'string'
- 但是当我注释掉
else
块中的赋值时,错误会从 VS 错误窗口中消失。但是,当我重新加载页面时,我收到一个编译错误,指出它正在寻找额外的}
发生了一些奇怪的事情,所以我没有关注上面的错误,而是试图找出:有没有办法将 a 存储@Url.Action
在变量中并将其传递给<a href="..."></a>
?
我认为的代码如下:
@{
string actionHelper = null;
}
@if (resultEnd == Model.Search.CountSubjectItems && Model.Search.Page > 1)
{
if (!Model.Search.GeneralSearch)
{
actionHelper = @Url.Action("LandingPage", "Explore", new { i = Model.ID, page = Model.Page - 1 }, null);
}
else
{
actionHelper = @Url.Action("SearchPage", "Explore", new { i = Model.ID, page = Model.Page - 1 }, null);
}
<span>
<a href="@actionHelper">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true" title="Previous"></span> Prev
</a>
</span>
}
解决方案
@
从对方法的调用中删除符号Url.Action
:
if (!Model.Search.GeneralSearch)
{
actionHelper = Url.Action("LandingPage", "Explore", new { i = Model.ID, page = Model.Page - 1 }, null);
}
else
{
actionHelper = Url.Action("SearchPage", "Explore", new { i = Model.ID, page = Model.Page - 1 }, null);
}
推荐阅读
- javascript - 在 Javascript 上设置属性时,我无法使用 CSS“悬停”功能
- javascript - 通过 package-lock.json 减轻差异噪音
- sql-server - CHARINDEX 和 LEN
- aws-lambda - DynamoDB.putitem 没有向 DynamoDB 表添加参数?
- android - 禁止键盘弹出
- android - 如何使用 Glide 管理本地 Bitmap?
- java - getDrawable 兼容性问题
- php - 如何在自定义方程式中使用占位符创建 pdo mysql 准备语句?
- ruby-on-rails - Rails 在嵌套形式中使用子值
- javascript - 如何删除 javascript eslint