在主页视图中,我生成了许多链接:
<ul class="nav navbar-nav">
@foreach (var item in ViewBag.RegList)
{
<li>@Html.ActionLink((string)item.registryName, "Index", "Registry", new { item.registryName }, new { item.registryID }) </li>
}
</ul>
我没有 - 我如何在ActionLink中为我的控制器设置参数以及它们从哪里开始?
这就是我在控制器中定义Index的方式:
public async Task<ActionResult> Index(object attr)
但是在attr中只有对象,当它转换为字符串时变为null。如果orgignal类型是字符串 - 那么也是null。
如何传输参数?或者我将值转换为错误的类型?
我也不明白 - ActionLink(routeValues)的第四个参数必须是什么?
我使用的方法:https://msdn.microsoft.com/en-us/library/dd504972(v=vs.108).aspx
或者这一个:https://msdn.microsoft.com/en-us/library/dd493068(v=vs.108).aspx
答案 0 :(得分:0)
如果查看创建的链接,它们将包含一组查询字符串参数
"https://some.where/controller/SomeAction/7788?extraParam1=foo&extraParam2=bar"
MVC的标准路由配置使参数“id”成为本地路径的一部分(示例中为“7788”),而其他参数则添加到查询字符串中(在问号之后)。
您对该操作的方法签名应该类似于
public async Task<ActionResult>
SomeAction(string id, string extraParam1, string extraParam2)
获取示例链接中的参数。