我已经浏览了这个,并没有任何与MVC6 taghelper锚标签相关的东西,而是有一个替代的[HttpGet]方法,可以满足多个参数。
当然可以将多个参数添加到MVC6锚标记器中,但是如何使用attrubute路由处理第二个选项和两个参数...
我有两个[HttpGet] IactionResult方法:
//GET: UserAdmin
public async Task<IActionResult> Index()
{
return View(await _userAdminService.GetAllUsers("name_desc", false));
}
// GET: UserAdmin/name_desc/True
[HttpGet("Index/{sortValue}&{showDeactivated}")]
public async Task<IActionResult> Index(string sortValue, bool showDeactivated)
{
return View(await _userAdminService.GetAllUsers(sortValue, showDeactivated));
}
我认为我试图采用第二种方法:
<a asp-action="Index" asp-route-sortValue="@Model.DisplayName" asp-route-showActivated="@Model.ShowDeActivated">Name: <span class="glyphicon glyphicon-chevron-down"></span></a>
呈现给:
<a href="/UserAdmin?sortValue=name showActivated=True">Name: <span class="glyphicon glyphicon-chevron-down"></span></a>
或
localhost.../UserAdmin?sorValue=name&showActivated=True
IT永远不会采用第二种方法。
使用MVC6锚标记器将第二个[HttpGet]方法与两个参数一起使用需要做什么?
修改
另外,如何处理在路径属性中分隔两个参数的&符号...
答案 0 :(得分:4)
路线模板中不支持&符号。这个想法是&符号用于查询字符串,它将始终应用于任何路由模板。这就是为什么你的第二个动作永远不会被召唤的原因。
例如,您可以将路径模板更改为
[HttpGet("UserAdmin/Index/{sortValue}/{showDeactivated}")]
官方文件link
答案 1 :(得分:3)
在这种情况下,不要分手。您可以通过一个操作轻松完成此操作:
public async Task<IActionResult> Index(string sortValue, bool showDeactivated)
{
var sort = string.IsNullOrWhiteSpace(sortValue) ? "name_desc" : sortValue;
return View(await _userAdminService.GetAllUsers(sort, showDeactivated));
}
如果未提供sortValue
GET参数,则默认为null
,如果未提供showDeactivated
,则默认为false
。
答案 2 :(得分:1)
最新版本的ASP.NET Core可以解决这个问题:
let value = Bird.physicsBody!.velocity.dy * ( Bird.physicsBody!.velocity.dy < 0 ? 0.005 : 0.001 )
Bird.zRotation = min( max(-0.5 //determines how much rotation when falling down, value), 1 //determines how much when jumping up )