我在 ac# web 應用程式中有一個引導選單。選單如下所示:
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">realestate</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Newquestion" asp-action="Index">Add New Questions</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Chapter
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" asp-controller="Question" asp-action="Index">Salesperson questions - Chapter 1</a>
</div>
</li>
</ul>
</div>
</div>
</nav>
我有一個名為 QuestionController.cs 的控制器,當用戶單擊下拉選單并選擇“銷售員問題 - 第 1 章”的選單選項時,它會獲得控制權。這一切都很好。
如果我想添加另一個選單選項,請說“銷售員問題 - 第 2 章”,我可以使用相同的控制器嗎?我想將一段資料傳遞給控制器??,以便控制器知道選擇了哪個選單選項。我正在做這樣的事情:
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" asp-controller="Question" asp-action="Index(0)">Salesperson questions - Chapter 1</a>
<a class="dropdown-item" asp-controller="Question" asp-action="Index(1)">Salesperson questions - Chapter 2</a>
</div>
所以在上面的代碼中,如果用戶選擇了第 1 章選項,值 0 將傳遞給控制器??。如果用戶選擇了第 2 章選項,則值 1 將傳遞給控制器??。
這可能嗎?
uj5u.com熱心網友回復:
試試這樣:
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" asp-controller="Question" asp-action="Index" asp-route-id="0">Salesperson questions - Chapter 1</a>
<a class="dropdown-item" asp-controller="Question" asp-action="Index" asp-route-id="1">Salesperson questions - Chapter 2</a>
</div>
在您的操作中捕獲 id,如下所示:
public IActionResult MyAction(int? id)
{
//do something with that id
}
您可以輸入任何內容而不是 id。但是您必須在該操作中使用該變數名稱。假設您可以使用 asp-route-name="john"。比您必須在該操作中捕獲名稱。如果您有匹配的名稱路由,則網址將是這樣的
controller/action/john
但是如果它與啟動中定義的路由不匹配,那么它將像這樣包裝到查詢引數中
controller/action?name=john
在查詢引數的情況下,您必須像這樣捕獲變數
public IActionResult YourAction([FromQuery(Name = "name")] string name)
{
// do whatever with that name
}
有關更多詳細資訊https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/built-in/anchor-tag-helper?view=aspnetcore-6.0#asp-route-value
uj5u.com熱心網友回復:
嘗試這個
<a class="dropdown-item" asp-controller="Question" asp-action="Index" asp-route-id="1"> Salesperson questions - Chapter 1 </a>
<a class="dropdown-item" asp-controller="Question" asp-action="Index" asp-route-id="2"> Salesperson questions - Chapter 2 </a>
uj5u.com熱心網友回復:
我相信這就是你要找的,傳遞路由值
<a asp-controller="Employee"
asp-action="Index"
asp-route-id="@Model.Id">EmployeeId: @Model.Id</a>
或者將靜態值傳遞給操作
<a asp-controller="Question"
asp-action="Index"
asp-route-id="1">Menu Item 1</a>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/375268.html
下一篇:我想從表中獲取行ID
