我如何在不同的控制器中调用方法,包括使用 mvc 6 的参数
Posted
技术标签:
【中文标题】我如何在不同的控制器中调用方法,包括使用 mvc 6 的参数【英文标题】:How can i invoke a method in a different controller including parameters using mvc 6 【发布时间】:2016-05-18 08:17:33 【问题描述】:我是开发 Web 应用程序的新手,最重要的是 mvc 新手。我正在尝试从一个视图导航到另一个控制器操作,包括参数。我当前显示的视图中有以下代码:
<p>
<a asp-controller="Working_set" asp-action="Create">Create new Working set</a>
</p>
@foreach (var item in Model)
<div class="col-sm-6 col-md-3">
<div class="thumbnail tile tile-medium">
<a asp-controller="SelectedWorking_set" asp-action="index">
<h2>
@html.DisplayFor(modelItem => item.Name)
<input name="workingSetID" type="hidden" value="@item.Working_setID" />
</h2>
</a>
</div>
</div>
如何在下面的控制器 SelectedWorking_set 中使用 Working_setID:
[Route("SelectedWorking_set")]
public class SelectedWorking_setController: Controller
private FlightmapContext _context;
public SelectedWorking_setController(FlightmapContext context)
_context = context;
public IActionResult Index()
return View();
[HttpPost("Index")]
public IActionResult Index([FromBody]int workingSetID)
//return View(_context.Project.ToList());
return View();
【问题讨论】:
【参考方案1】:您需要将输入名称传递给您的控制器方法,如下例所示;
<input name="workingSetID" type="hidden" value="@item.Working_setID" />
这里“workingSetID”名称我们需要传递您的控制器方法,假设您的方法名称是“Index”那么您需要在控制器中这样写。
[HttpPost]
public ActionResult Index(string workingSetID)
//Code here
这样,您将在控制器方法中获得“Working_setID”值。您还需要提交按钮才能将此值发布到控制器。
【讨论】:
以上是关于我如何在不同的控制器中调用方法,包括使用 mvc 6 的参数的主要内容,如果未能解决你的问题,请参考以下文章
使用标签助手调用控制器,包括来自 asp.net core mvc 中搜索栏的数据