C# 如何使用相同的控制器但不同的操作将数据从一个视图传递到另一个视图?ASP.Net&;微软图形

C# 如何使用相同的控制器但不同的操作将数据从一个视图传递到另一个视图?ASP.Net&;微软图形,c#,asp.net-mvc,microsoft-graph-api,C#,Asp.net Mvc,Microsoft Graph Api,好的,这样的想法是用户点击视图上的下拉选择,点击表单上的Submit,它将用户选择发送回控制器,并呈现特定于该用户选择的新视图 这是一种观点: <form method="post"> <label for="teamList">First choose a team:</label> <select id="teamList" name="ID"> @foreach (var item in Model)

好的,这样的想法是用户点击视图上的下拉选择,点击表单上的Submit,它将用户选择发送回控制器,并呈现特定于该用户选择的新视图

这是一种观点:

<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>

首先选择一个团队:
@foreach(模型中的var项目)
{
@item.DisplayName
}

表单上的post方法将获取用户选项的值,并使用操作“Index”将其传递给控制器:

[HttpPost]
    public async Task<ActionResult> Index(string ID)
    {
        var data = await GraphHelper.GetChannelsAsync(ID);

        return View("Channels", data);

    }
[HttpPost]
公共异步任务索引(字符串ID)
{
var data=await graphhelp.GetChannelsAsync(ID);
返回视图(“通道”,数据);
}
现在,它确实使用以下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>

现在选择一个频道:
@foreach(模型中的var项目)
{
@item.DisplayName
}

现在,我需要一些帮助。我需要再次提交此channelList表单,以便使用Microsoft Graph API创建选项卡。我会用“channelId”值将此“channelList”表单提交回我的控制器

public async Task<ActionResult> SubmitChannelId()
        {
            //Take channelID and pass it to microsoft.graphApi function call here
            return View(//with returned function call response);
        }
public异步任务SubmitChannelId()
{
//获取channelID并将其传递给microsoft.graphApi函数调用
返回视图(//返回函数调用响应);
}

如果我使用相同的控制器,如何在此“通道”视图上执行[HttpPost]提交请求?这可能与操作或操作链接有关,但我已经阅读了文档,无法理解它。我能得到一些帮助吗?谢谢

快速解决方案是只在表单元素上使用Url帮助器:

<form method="post" action="@Url.Action("MyAction", "MyController")" >
在这两种情况下,控制器中的操作
SubmitChannelId
应修饰为
[HttpPost]
,并接受提交的
channelId
的输入参数(相应更改参数类型):

[HttpPost]
公共异步任务提交通道ID(int通道ID)
{
< ... >
}

快速解决方案是只在表单元素上使用Url帮助器:

<form method="post" action="@Url.Action("MyAction", "MyController")" >
在这两种情况下,控制器中的操作
SubmitChannelId
应修饰为
[HttpPost]
,并接受提交的
channelId
的输入参数(相应更改参数类型):

[HttpPost]
公共异步任务提交通道ID(int通道ID)
{
< ... >
}
[HttpPost]
public async Task<ActionResult> SubmitChannelId(int channelId)
{
    < ... >
}