您好我有这个谜题,我想分享一下,看看我的解决方案是否合理并可能得到一些帮助。 基本上我有一个名为“创建”的视图。
现在我点击“Escolher Ficheiro”(意思是“选择文件”),我选择想要的文件并点击填充。
到目前为止一切顺利,我的文件到达了POST方法,此时它还可以。 您可以在下面的图像中看到,我从文件中提取了该数字,并在其中显示了“创建”按钮。
然而,因为你可以看到我的“选择文件”输入变为空“Nenhum fic ...”(表示没有选择文件) 发生这种情况是因为我返回View Create并刷新了我的整个页面。
问题是我需要在我的控制器上执行POST操作,所以我可以读取 Prop1 。
出于明显的安全原因,我默认情况下无法设置文件,因此我尝试了一些部分视图并仅返回部分视图,但是有些内容完全缺失。有没有办法刷新“ajax视图的底部部分,但同时在控制器上执行操作?”
以下是我的控制器操作:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "XL2XMLProcID,SourceXLFiles,Prop1,Prop2,TargetXMLFile,State")] XL2XMLProc xL2XMLProc, HttpPostedFileBase postedFile, string submitButton)
{
if (ModelState.IsValid)
{
if (postedFile != null)
{
// fetch the date from the file
var h = new XLHelper();
var v = h.Fetch("nrContaACreditarRC", postedFile.FileName, @"C:\somefolder\somefolder\somefolder\ExcelSamples\");
if (submitButton == "Create")
{
TestZipAndUpload(v);
}
else
{
// extract postedFile data to show
xL2XMLProc.Prop1 = v;
ViewBag.comingFromFill = true;
return View(ActionName.Create.ToString(), xL2XMLProc);
}
}
else
{
// posted file is null, throw error.
return View();
}
return RedirectToAction(ActionName.Index.ToString());
}
return View(xL2XMLProc);
}
提前谢谢。