【问题标题】:pass value attribute from view to controller asp.net mvc将值属性从视图传递到控制器 asp.net mvc
【发布时间】:2017-07-27 06:53:46
【问题描述】:

这是我的代码

@{ var companies = (IEnumerable<Company>)ViewData["companylist"]; }
@foreach (var item in companies)
{
    //post the form to upload actions, index2 for testing
       <form id="submitfinal" method="post" asp-action="Upload" asp-controller="report" enctype="multipart/form-data">
            <input type="hidden" name="companyid" value="@item.Id" />
            @item.Name (@item.Status)

            <input type="file" name="files" />
            <input name="submit" type="submit" value="upload final report" />

    </form>

}

这里的问题是如何将输入标签属性中的数据传输到控制器? 假设@item.Id 是 1234,我如何在控制器中得到它?

【问题讨论】:

  • 在 ViewModel 中(或在函数参数中),用于处理 POST 请求的控制器方法 ReportController.Upload,在用户提交表单时调用。我可以建议遵循 ASP.NET Core 教程吗?它将以简单的方式介绍这个概念。
  • 如何在控制器中获取输入标签的属性数据值?
  • @AdrianoRepetti 这不是我想要的答案
  • [HttpPost] public async Task Upload(ICollection files, FormCollection form) {var inputForm = form["inputForm"];} 假设这是获取表单的方法,但我想要来自 值属性 的数据

标签: asp.net razor view asp.net-core controller


【解决方案1】:

你可以使用

 @Html.HiddenFor(m => m.yourPropertyname)

或者使用 jquery ajax 你可以将值发送到控制器。

【讨论】:

  • 我如何在控制器中获得它?
  • OP 在她的代码中已经有了这个(只是不同的形式),她要求另一个(微不足道的)事情,即如何在 POST 上调用的控制器方法中取回该值。
  • 我想这就是你需要的。同样的问题.. [链接] (stackoverflow.com/questions/14124324/…)
【解决方案2】:

也许为时已晚,但我会使用 asp-route-Id 之类的:

<form id="submitfinal" method="post" asp-route-Id="@item.Id" asp-action="Upload" asp-controller="report" enctype="multipart/form-data">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多