MVC 5使用帖子中的信息刷新部分视图

时间:2015-12-02 10:25:59

标签: asp.net ajax asp.net-mvc partial-views

您好我有这个谜题,我想分享一下,看看我的解决方案是否合理并可能得到一些帮助。 基本上我有一个名为“创建”的视图。 enter image description here

现在我点击“Escolher Ficheiro”(意思是“选择文件”),我选择想要的文件并点击填充。

到目前为止一切顺利,我的文件到达了POST方法,此时它还可以。 您可以在下面的图像中看到,我从文件中提取了该数字,并在其中显示了“创建”按钮。

然而,因为你可以看到我的“选择文件”输入变为空“Nenhum fic ...”(表示没有选择文件) 发生这种情况是因为我返回View Create并刷新了我的整个页面。 enter image description here

问题是我需要在我的控制器上执行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);
    }

提前谢谢。

0 个答案:

没有答案