我有以下模型:
public List<string> Results { get; set; }
public List<string> ClubcardNumbers { get; set; }
public bool FindCards {get; set;}
public bool FindDuplicates { get; set; }
public bool AllocatedVouchers { get; set; }
我的控制器中有以下操作:
public ActionResult ImportExcel()
{
if (Request.Files["XlFileUpload"].ContentLength > 0)
{
string extension = System.IO.Path.GetExtension(Request.Files["XlFileUpload"].FileName);
string path1 = string.Format("{0}/{1}", Server.MapPath("~/Content/Upload"), Request.Files["XlFileUpload"].FileName);
if (System.IO.File.Exists(path1))
System.IO.File.Delete(path1);
Request.Files["XlFileUpload"].SaveAs(path1);
Session.Add("XlFileUpload", path1);
}
if (Request.Files["DataFileUpload"].ContentLength > 0)
{
string extension = System.IO.Path.GetExtension(Request.Files["DataFileUpload"].FileName);
string path1 = string.Format("{0}/{1}", Server.MapPath("~/Content/Upload"), Request.Files["DataFileUpload"].FileName);
if (System.IO.File.Exists(path1))
System.IO.File.Delete(path1);
Request.Files["DataFileUpload"].SaveAs(path1);
Session.Add("DataFileUpload", path1);
}
MvcUI2.Models.Main model = new Models.Main();
model.ClubcardNumbers = GetCardNumbers();
return View("Main", model);
}
[HttpPost]
public ActionResult RunValidation(Models.Main model)
{
//determine which validations checks to run
if (model.FindCards)
{
FileReader.UnitTests.pronc_vas ut = new FileReader.UnitTests.pronc_vas();
ut.FileToCheck = Session["XlFileUpload"].ToString();
foreach (string cn in model.ClubcardNumbers)
{
ut.ClubcardNumberUnderTest = cn.Split('\t')[0];
ut.ClubcardNumberFound();
//add results to a list to be read by DisplayResults Action
if (ut.Result)
model.Results.Add("PASSED - " + cn + " - " + "Find card number");
else
model.Results.Add("FAILED - " + cn + " - " + "Find card number");
}
}
return View("Main", model);
}
这是我的看法:
<div id="body">
<div id="ImportExcel">
<h2>Import</h2>
@using (Html.BeginForm("ImportExcel", "Main", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<table>
<tr>
<td>Excel file</td>
<td>
<input type="file" id="XlFileUpload" name="XlFileUpload" /></td>
</tr>
<tr>
<td>Data file</td>
<td>
<input type="file" id="DataFileUpload" name="DataFileUpload" /></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" id="Submit2" name="Submit" value="Submit" /></td>
</tr>
</table>
}
</div>
<div id="DisplayCards">
DisplayCards div
<ul>
@foreach (var item in Model.ClubcardNumbers)
{
<li>
@item
</li>
}
</ul>
</div>
<div id="RunValidation">
@using (Html.BeginForm("RunValidation", "Main"))
{
<table>
<tr>
<td>
@Html.CheckBoxFor(m => m.FindCards)
Find Cards
</td>
</tr>
<tr>
<td>
@Html.CheckBoxFor(m => m.FindDuplicates)
Find Duplicates
</td>
</tr>
<tr>
<td>
@Html.CheckBoxFor(m => m.AllocatedVouchers)
Check Voucher Allocation
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="SubmitValidation" /></td>
</tr>
</table>
}
</div>
<div id="DisplayResults">
<ul>
@foreach (var result in Model.Results)
{
<li>
@result
</li>
}
</ul>
</div>
用户可以使用 html 文件输入类型选择 Excel 文件和数据文件。然后控制器处理这些文件并将俱乐部卡号码列表填充到模型内的列表中。然后,此列表在 div“DisplayCards”中显示给用户。在 div“RunValidation”中,用户可以选择复选框,然后再发回服务器。此时我需要将控制器的 ClubcardNumbers 列表填充到模型中,以便它可以由 RunValidation Action 处理。
谁能建议我如何做到这一点?