MVC在Post上渲染动作

时间:2016-04-22 19:05:00

标签: c# asp.net-mvc-4

我有一个调用另一个局部视图的页面。页面加载正常,但是当出现验证错误时,它似乎多次调用post方法。

导致此问题的代码在这里:

<div>
    @{Html.RenderAction("ViewUploadedDocs", "TrackingHome", new { number = @Model.Id.ToString() });}
</div>

这应该在控制器中调用以下方法。

    public ActionResult ViewUploadedDocs(string number)
    {
        return PartialView();
    }

它没有用[HttpGet]或[HttpPost]修饰。不断被调用的方法是在页面的post方法之下。

    [HttpPost]
    [MultipleButton(Name = "action", Argument = "Save")]
    public ActionResult Edit(EditScreenModelValidation model)
    {
        if (ModelState.IsValid)
        {
            return RedirectToAction("UserWorkflows", "Home", new { Area = "Workflow" });
        }
        return View("Edit", model);
    }

我已经阅读了stackoverflow,其中人们有调用他们试图获取的post方法的页面,但我的主页调用post方法而不是我想要的页面。如果我在主页面中删除了renderAction行,那么该页面可以正常工作,并且该操作不会调用其中的“编辑”页面。

1 个答案:

答案 0 :(得分:0)

RenderAction调用指定的子操作方法,并在父视图中内联呈现结果(它调用操作)。如果需要传递当前的ViewDataDictionary对象,则应使用RenderPartial,如果需要将指定的视图呈现为HTML编码的字符串,则应使用Partial,具体取决于您要完成的操作。