【发布时间】:2020-04-03 21:04:53
【问题描述】:
我正在尝试在我的导航栏中添加一个链接,该链接根据用户的帐户类型将用户重定向到不同的网页。我在执行此操作时遇到问题,需要一些帮助。
我调用的控制器代码如下所示:
public IActionResult Attendance(char accountType)
{
if (accountType.Equals("m") || accountType.Equals("a"))
{
return RedirectToAction("FacultyAttendance");
}
else
{
return RedirectToAction("StudentAttendance");
}
}
public IActionResult StudentAttendance()
{
// More functionality will be added later
return View();
}
public IActionResult FacultyAttendance()
{
// More functionality will be added later
return View();
}
按照this answer调用Controller方法,我在View文件中有这段代码sn-p:
<a href="<%: @Url.Action("Attendance", "HomeController", new {accountType = "m"}) %>">Attendance</a>
这给了我以下错误:
错误请求 - 无效网址
HTTP 错误 400。请求 URL 无效。
我还尝试通过删除<%: 和%> 来关注this answer。
<a href="@Url.Action("Attendance", "HomeController", new {accountType = "m"})">Attendance</a>
如果我这样做,我只会得到空白网页。
我的第一个问题在于视图文件中的这个方法调用应该使用哪种样式。这些中的任何一个都是正确的,还是我应该完全使用其他东西?问题可能出在我设置控制器代码的方式上吗?
任何帮助将不胜感激,因为我是 ASP.NET 的 MVC 框架的新手。
编辑: 我找到的解决方案与我最初发布的有点不同。我在我的视图中使用了这个标签并让它工作:
<a asp-controller="Home" asp-action="Attendance" asp-route-accountType='s'>Attendance</a>
我还关注ThisGuy's suggestions 改进代码,因为我对一些变量管理不善,这可能是问题的一部分。
【问题讨论】:
标签: c# asp.net-mvc asp.net-core redirect