将参数或查询字符串传递到ASP.NET中的top nav In _Layout.cshtml

uwopmtnx  于 2022-11-20  发布在  .NET
关注(0)|答案(2)|浏览(128)

在我的控制器中,我得到了三个参数。/类/列表)

public class ClassController : Controller {
    public ActionResult List(string classCode = null, string className = null, List<string> semester = null) 
    { ... }
}

我在导航栏里找到了这个...

<a class="nav-link text-dark" asp-area="" asp-controller="Class" asp-action="List">Classes</a>

我想传递参数semmer的值,这样链接看起来就像localhost/Class/List?semester=9&semester=1。谢谢!
我已经尝试了ViewBag和asp-route-id,但失败了。

brjng4g3

brjng4g31#

根据我的经验,字符串列表通常需要你循环Model -〉item. sember来列出视图中的所有值。
您可以尝试将List<string>更改为单个string

public ActionResult List(string classCode = null, string className = null, string semester = null)

然后将其附加到“a”标签。假设您在控制器中填充了一个Viewbag.semesterId

asp-semester="@ViewBag.semesterId"
qhhrdooz

qhhrdooz2#

您可以尝试将列表转换为查询字符串。操作:

public IActionResult A()
        {
            ViewBag.List = new List<string> { "a", "b", "c" };
          
            return View();

        }

A.cshtml:

@{
    var list=ViewBag.List as List<string>;
    var result = "?semester=" +String.Join("&semester=", list);
}
<a class="nav-link text-dark" href="/Class/List@(result)">Classes</a>

实验结果:

相关问题