将按钮值从视图传递到控制器ASPNET 5 [英] Passing button value from view to controller aspnet 5

查看:43
本文介绍了将按钮值从视图传递到控制器ASPNET 5的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在构建一个ASPNET MVC6应用程序,我想在其中将值从View传递到控制器.我的视图有多个具有ID的按钮,我想使用我的viewmodel将被单击的按钮的ID传递给控制器​​.

I'm building a aspnet mvc6 application where I want to pass values from View to controller. My view has multiple buttons having IDs and I want to pass the ID of the button which is clicked to my controller using my viewmodel.

控制器:

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();
    }
}

ViewModel:

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 '的值,以便它在控制器中可用?

What should be done in the view such that I can set the value of 'buttonID' of the viewmodel so that it is available in the controller?

推荐答案

您可以将表单定义为:

<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") 
    ....
}

这篇关于将按钮值从视图传递到控制器ASPNET 5的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆