Heim  >  Fragen und Antworten  >  Hauptteil

So übergeben Sie Parameter oder Abfragezeichenfolgen an die obere Navigation in _Layout.cshtml in ASP.NET

<p>In meinem Controller habe ich drei Parameter. (GET:/Class/List)</p> <pre class="brush:php;toolbar:false;">public class ClassController : Controller { public ActionResult List(string classCode = null, string className = null, List<string> semester = null) { ... } }</pre> <p>Und ich habe das in meiner Navigationsleiste...</p> <pre class="brush:php;toolbar:false;"><a class="nav-link text-dark"" asp-controller=" ="Liste">Klassen</a></pre> <p>Ich möchte einen Wert des Parameters Semester übergeben, damit der Link wie folgt aussieht: <code>localhost/Class/List?semester=9&semester=1</code>. Danke! </p> <p>Ich habe ViewBag und asp-route-id ausprobiert, aber es ist fehlgeschlagen. </p>
P粉343408929P粉343408929414 Tage vor472

Antworte allen(2)Ich werde antworten

  • P粉462328904

    P粉4623289042023-09-02 09:30:18

    这可能不起作用,因为你的ActionResult List期望的是一个字符串列表。根据我的经验,一个字符串列表通常需要你通过循环Model -> item.semester来列出视图中的所有值。

    你可以尝试将List<string>更改为单个string

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

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

    asp-semester="@ViewBag.semesterId"

    Antwort
    0
  • P粉754473468

    P粉7544734682023-09-02 09:25:41

    你可以尝试将List转换为查询字符串。 操作:

    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>

    结果:

    Antwort
    0
  • StornierenAntwort