ASP.调用一个方法
本文关键字:一个 方法 调用 ASP | 更新日期: 2023-09-27 18:11:26
我需要将已经存在的模型从我的部分传递到方法中,问题是(看起来像)这种语法
@using (Html.BeginForm("EmployeeOverallReportFilter", "Reports", FormMethod.Post)) {}
正在重新创建我的模型,因为我的控制器仅从@using {}
换句话说:
-
new Model
- 添加一些data& magic并转到我的部分
- 在我的部分添加更多的数据,并将其传递给控制器
- 处理数据
我在步骤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);
}
我建议创建一个会话并存储现有的模型,然后将会话中的新更改等同于现有的模型。如果您使用隐藏字段之类的机制将所有数据存储在页面上,则会使页面变得沉重。