ASP.调用一个方法

本文关键字:一个 方法 调用 ASP | 更新日期: 2023-09-27 18:11:26

我需要将已经存在的模型从我的部分传递到方法中,问题是(看起来像)这种语法

@using (Html.BeginForm("EmployeeOverallReportFilter", "Reports", FormMethod.Post)) {}

正在重新创建我的模型,因为我的控制器仅从@using {}

中的编辑框接收数据模型

换句话说:

  1. new Model
  2. 添加一些data& magic并转到我的部分
  3. 在我的部分添加更多的数据,并将其传递给控制器
  4. 处理数据

我在步骤3中遇到了问题,因为有些方式(我认为是因为@using (Html.BeginForm("EmployeeOverallReportFilter", "Reports", FormMethod.Post)) {})我失去了在步骤2中添加的数据。

问题是:

是真的吗?@using (Html.BeginForm()) {}可以重新创建我的模型,还是我应该添加所有代码?

是否有其他方法调用方法并传递数据?

我试过了:<input type="submit" onclick="@Html.Action("EmployeeOverallReportFilter", "Reports", Model)" />

但是错误:

Exception Details: System.Web.HttpException: A public action method 'EmployeeOverallReportFilter' was not found on controller 'BTGHRM.Controllers.ReportsController'.

    [HttpPost]
    public ActionResult EmployeeOverallReportFilter(EmployeeOverallReport model)
    {
        //foreach(var item in model.ListOfPersonalData)
        //{
        //    //NameFiler
        //    if((!item.FirstName.Contains(model.ModelFilters.NameFilter)) && model.ModelFilters.NameFilter!=String.Empty) model.ListOfPersonalData.Remove(item);
        //}
        return View("EmployeeOverAllReport", model);
    }

ASP.调用一个方法

我建议创建一个会话并存储现有的模型,然后将会话中的新更改等同于现有的模型。如果您使用隐藏字段之类的机制将所有数据存储在页面上,则会使页面变得沉重。