![](/img/trans.png)
[英]How do you return data from a view to controller in asp.net using foreign key relationship?
[英]How do you pass data from one view to another using the same controller but different actions? ASP.Net & Microsoft Graph
好的,所以這個想法是用戶點擊視圖上的下拉選擇,點擊表單上的提交,將用戶選擇發送回控制器,並呈現特定於該用戶選擇的新視圖。
這是視圖:
<form method="post">
<label for="teamList">First choose a team:</label>
<select id="teamList" name="ID">
@foreach (var item in Model)
{
<option value=@item.Id>@item.DisplayName</option>
}
</select><br />
<input type="submit" value="Get channels">
</form>
表單上的 post 方法將獲取用戶選項的值並將其傳遞給具有操作“索引”的控制器:
[HttpPost]
public async Task<ActionResult> Index(string ID)
{
var data = await GraphHelper.GetChannelsAsync(ID);
return View("Channels", data);
}
現在它確實使用以下 html 呈現“頻道”視圖:
<form method="post">
<label for="channelList">Now choose a channel:</label>
<select id="channelList" name="channelId">
@foreach (var item in Model)
{
<option value=@item.Id>@item.DisplayName</option>
}
</select><br />
<input type="submit" value="Create tabs">
</form>
現在,這是我需要幫助的地方。 我需要再次提交這個 channelList 表單以使用 Microsoft Graph API 創建一個選項卡。 我會將此“channelList”表單提交回帶有“channelId”值的控制器。
public async Task<ActionResult> SubmitChannelId()
{
//Take channelID and pass it to microsoft.graphApi function call here
return View(//with returned function call response);
}
如果我使用相同的控制器,如何在此“頻道”視圖上執行 [HttpPost] 提交請求? 這可能與操作或 actionLinks 有關,但我已經閱讀了該文檔並且無法理解它。 我可以得到一些幫助嗎? 謝謝!
快速解決方案是只在表單元素上使用 Url 助手:
<form method="post" action="@Url.Action("MyAction", "MyController")" >
您也可以使用Html.BeginForm
來呈現整個表單:
@using(Html.BeginForm("MyAction", "MyController", FormMethod.Post))
{
< ... >
}
在這兩種情況下,您在 Controller 中的操作SubmitChannelId
應該用[HttpPost]
修飾並接受提交的channelId
輸入參數(相應地更改參數類型):
[HttpPost]
public async Task<ActionResult> SubmitChannelId(int channelId)
{
< ... >
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.