将按钮值从视图传递到控制器 aspnet 5
本文关键字:控制器 aspnet 按钮 视图 | 更新日期: 2023-09-27 18:32:29
我正在构建一个aspnet mvc6应用程序,我想在其中将值从View传递到控制器。我的视图有多个具有 ID 的按钮,我想使用我的视图模型将单击的按钮的 ID 传递给我的控制器。
控制器:
public class HomeController : Controller
{
private SampleDbContext _context;
private HomeViewModel _viewmodel;
public HomeController(SampleDbContext context, HomeViewModel model)
{
_viewmodel = model;
_context = context;
}
public IActionResult Index()
{
_viewmodel.model = _context.MyModel.ToList();
return View(_viewmodel);
}
public IActionResult Test()
{
var x = _viewmodel.buttonID;
return View();
}
}
视图模型:
public class HomeViewModel
{
public IEnumerable<MyModel> model { get; set; }
public int buttonID { get; set; }
}
视图:
@model MyProject.ViewModels.HomeViewModel
<table>
@foreach (var item in Model.model)
{
<tr>
<td>
<form asp-controller="Home" asp-action="Test">
<button value="Add"/>
</form>
</td>
</tr>
}
</table>
在视图中应该怎么做,以便我可以设置viewmodel
的"buttonID
"的值,以便在控制器中可用?
您可以将表单定义为:
<form asp-controller="Home" asp-action="Test">
<button value="Add" name="buttonName"/>
</form>
查看型号:
public class HomeViewModel
{
public IEnumerable<MyModel> model { get; set; }
public string buttonName { get; set; }
}
和控制器:
public ActionResult Test(HomeViewModel model) {
if(model.buttonName == "Add")
....
}
您可以添加一个输入字段,其中包含要发送的数据。
添加这个:
<form asp-controller="Home" asp-action="Test">
<input asp-for="buttonID" value="yourButtonID" type="hidden"/>
<button value="Add"/>
</form>