我正在使用 html.beginform 开发一个学校项目,当我单击按钮时,我会转到不同的操作,但我需要将视图中 @model 内的值传递给操作。如何才能我这样做?
@using (Html.BeginForm("ExportToexcel_Click", "L_AccessPoint", FormMethod.Post))
{
<button type="submit" id="cmdAction" runat="server">
Export To Excel
</button>
}
在该操作中,我将创建一个文件,为此,我需要将视图中的模型传递给操作 ExportToexcel_Click
[HttpPost]
public ActionResult ExportToexcel_Click(dadosPassar dp)
{
var ds = new dadosPassar();
ds = dp;
return RedirectToAction("Index",ds);
}
这就是我的模型,
public class dadosPassar
{
public List<Stored1>? dados2 { get; set; }
public List<L_AccessPoint>? Aps { get; set; } = new List<L_AccessPoint>();
public List<L_Zone>? Zones { get; set; } = new List<L_Zone>();
public List<int>? ap { get; set; }
public DateTime Inicial { get; set; }
public DateTime Final { get; set; }
public string? AcessoVisita { get; set; }
public string? tempo { get; set; }
public string ApZona { get; set; }
}
编辑: 我需要将 model.dados2 传递给我的视图,以便我可以使用它,我该怎么做?
这就是我的dados2结构
public class Stored1
{
public short ap_id { get; set; }
public string ap_name { get; set; }
public int numeroAcessos { get; set; }
//public int month { get; set; }
public int year { get; set; }
public int MES { get; set; }
public int DIA { get; set; }
}
我正在使用 html.beginform,当我单击按钮时,我会转到不同的操作?”
是的,这非常明显,它应该根据您的代码重定向到您的
controller
。因为 <button type="submit" runat="server"> Export To Excel </button>
不是正确的方法。你应该尝试下面的方法。
正确方法:
<input type="submit" id="cmdAction" value="Export To Excel"/>
输出:
但是我需要传递模型 aspnet c# 中的值
您似乎没有在
BeginForm
提交操作中发送任何内容,如下所示。
@using (Html.BeginForm("ExportToexcel_Click", "L_AccessPoint", FormMethod.Post))
{
<input type="submit" d="cmdAction" value="Export To Excel"/>
}
注意:上面的代码将向您的
ExportToexcel_Click
控制器提交空值,因为您没有在 form post action
内发送任何内容。
演示:
虽然还不清楚你的计划是什么。但是,如果您想在这种情况下加载带有一些预定义数据的页面,您应该初始化
model
中的 controller Index action
,然后以隐藏模式加载该值,如下所示:
初始视图的控制器操作:
public IActionResult Index()
{
var ds = new dadosPassar();
ds.AcessoVisita = "Initial AcessoVisita";
ds.tempo = "Initial Tempo";
ds.ApZona = "Initial Ap Zona";
ds.Final = DateTime.Now;
return View(ds);
}
查看:
@model DotNet6MVCWebApp.Models.dadosPassar
@using (Html.BeginForm("ExportToexcel_Click", "L_AccessPoint", FormMethod.Post))
{
<input asp-for="AcessoVisita" hidden class="form-control" />
<input asp-for="tempo" hidden class="form-control" />
<input asp-for="ApZona" hidden class="form-control" />
<input type="submit" d="cmdAction" value="Export To Excel"/>
}
单击提交按钮时的控制器:
[HttpPost]
public ActionResult ExportToexcel_Click(dadosPassar dp)
{
var ds = new dadosPassar();
ds = dp;
return RedirectToAction("Index", ds);
}
输出:
这应该可以解决您当前的问题并指导您将值传递给控制器
POST
方法。