问题:asp-action标记帮助程序输出的URL包含太多细分。
我的Razor视图有这一行:
<form method="post" asp-action="Edit" asp-controller="Task">
当我对我的应用发布GET /Task/Edit/1
时,上面的标记助手会导致:(请注意最后一段,1
)
<form method="post" action="/Task/Edit/1">
结尾的1
困扰着我。我希望表单重新发回到/Task/Edit
。我觉得我应该在路线上解决这个问题,但似乎无法找到正确的组合。
两种操作方法,一种用于查看详细信息,另一种用于应用更改。
[HttpGet]
public ActionResult Edit(string id)
{
return View(_taskRepository.Get(new Guid(id)));
}
[HttpPost]
public IActionResult Edit(Task task)
{
// ...
return View(task);
}
public class Task
{
public int TaskId { get; set; }
}
我的路线:
routes.MapRoute(name: "Default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Task", action = "Index" }
);
如何解决此问题,以便asp-action
在/Task/Edit
元素中输出<form>
? 1
是哪里来的?