我正在使用 html.beginform 開發一個學校專案,當我單擊一個按鈕時,我會轉到一個不同的操作,但我需要將我在視圖中的 @model.dados2 中的值傳遞給操作,如何我可以這樣做嗎?
<form asp-action="ExportToexcel_Click" method="post">
<input asp-for="Inicial" hidden/>
<input asp-for="Final" hidden/>
<input asp-for="AcessoVisita" hidden />
<input asp-for="tempo" hidden/>
<input asp-for="ApZona" hidden/>
<select class="listbox2" hidden asp-for="ap" multiple>
@foreach(var i in Model.ap)
{
<option value=@i> @i </option>
}
</select>
<div class="form-group"style="margin-bottom:2%;margin-top:2%;">
<input type="submit" value="Consultar" class="btn btn-primary" />
</div>
</form>
我已經將一些資料傳遞給新動作,我傳遞了一個整數串列,但我不知道如何傳遞一個物件串列。
在該操作中,我將創建一個檔案,為此我需要將視圖中的模型傳遞給操作 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; }
}
那是我的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; }
}
uj5u.com熱心網友回復:
"But I don't know how to pass a list of object"
您可以按照以下步驟操作:
Controller Action For Loading View:
public IActionResult Index(string stored1s)
{
if (stored1s != null)
{
List<Stored1> model = JsonConvert.DeserializeObject<List<Stored1>>(stored1s);
}
var listDados = new List<Stored1>()
{
new Stored1(){ ap_id = 101,ap_name ="AP-101", year= 2021, DIA=101, MES=202},
new Stored1(){ ap_id = 102,ap_name ="AP-102", year= 2022, DIA=102, MES=203},
new Stored1(){ ap_id = 103,ap_name ="AP-103", year= 2023, DIA=103, MES=204},
};
var ds = new dadosPassar();
ds.AcessoVisita = "Initial AcessoVisita";
ds.tempo = "Initial Tempo";
ds.ApZona = "Initial Ap Zona";
ds.Final = DateTime.Now;
ds.dados2 = listDados;
return View(ds);
}
Note:當從方法呼叫時,這里string stored1s將被賦值。RedirectToActionExportToexcel_Click
Alternative Index
public IActionResult Index()
{
var stringList = TempData["dados2"].ToString();
List<Stored1> datosList = JsonConvert.DeserializeObject<List<Stored1>>(stringList);
var listDados = new List<Stored1>()
{
new Stored1(){ ap_id = 101,ap_name ="AP-101", year= 2021, DIA=101, MES=202},
new Stored1(){ ap_id = 102,ap_name ="AP-102", year= 2022, DIA=102, MES=203},
new Stored1(){ ap_id = 103,ap_name ="AP-103", year= 2023, DIA=103, MES=204},
};
var ds = new dadosPassar();
ds.AcessoVisita = "Initial AcessoVisita";
ds.tempo = "Initial Tempo";
ds.ApZona = "Initial Ap Zona";
ds.Final = DateTime.Now;
ds.dados2 = listDados;
return View(ds);
}
View:
@model DotNetWebApp.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" />
@for (int i = 0; i < Model.dados2.Count; i )
{
<tr >
<td>
<label><strong>Id</strong></label>
@Html.TextBoxFor(model => model.dados2[i].ap_id)
</td>
<td>
<label><strong>Name</strong></label>
@Html.TextBoxFor(model => model.dados2[i].ap_name)
</td>
<td>
<label><strong>Year</strong></label>
@Html.EditorFor(model => model.dados2[i].year)
</td>
</tr>
<br />
}
<input type="submit" d="cmdAction" style="margin-top:10px" class="btn btn btn-primary" value="Export To Excel" />
}
Note:@Html.TextBoxFor如果您不希望它們顯示,您可以隱藏它們。由你決定。
Controller When Submit:
[HttpPost]
public ActionResult ExportToexcel_Click(dadosPassar dp)
{
var ds = new dadosPassar();
ds = dp;
return RedirectToAction("Index",
new
{
stored1s = JsonConvert.SerializeObject(dp.dados2)
});
}
If you prefer Alternative Index in that case use this ExportToexcel_Click
[HttpPost]
public ActionResult ExportToexcel_Click(dadosPassar dp)
{
var ds = new dadosPassar();
ds = dp;
TempData["dados2"] = JsonConvert.SerializeObject(dp.dados2);
return RedirectToAction("Index");
}
Output:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/469337.html
