傳遞參數或查詢字串給_Layout.cshtml中的頂部導航在ASP.NET中的實作方式
P粉343408929
P粉343408929 2023-09-01 10:01:28
0
2
469
<p>在我的控制器中,我有三個參數。 (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>而我在我的導覽列中得到了這個...</p> <pre class="brush:php;toolbar:false;"><a class="nav-link text-dark" asp-area="" asp-controller="Class" asp-action ="List">Classes</a></pre> <p>我想傳遞一個參數semester的值,使得連結看起來像<code>localhost/Class/List?semester=9&semester=1</code>。謝謝! </p> <p>我試過ViewBag和asp-route-id,但失敗了。 </p>
P粉343408929
P粉343408929

全部回覆(2)
P粉462328904

這可能不起作用,因為你的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"
P粉754473468

你可以嘗試將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>

結果:

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!