2016-04-22 20 views
4

私は別の部分的なビューを呼び出すページを持っています。ページは正常に読み込まれますが、検証エラーが発生すると、postメソッドを複数回呼び出すように見えます。投稿のMVCレンダーアクション

問題を引き起こしているコードはここにある:

<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); 
    } 

人々は、彼らが取得しようとしているが、鉱山は私が取得しようとしていますページ私のメインページのPOSTメソッドを呼び出すとされていないPOSTメソッドを呼び出すページを持っているところ私はstackoverflowの上で読みました。私のメインページでrenderAction行を削除すると、ページが正しく動作し、アクションはそのページの「編集」ページを呼び出さない。

+5

これをデバッグするのに十分な情報がありません。 – Liam

+1

あなたが見たい他の情報はありますか? – Nate

+2

わかりません....それは問題です。これは、あなたとあなたのコードに完全にアクセスできる人だけが解決できるもののように感じます。これはおそらくあなたが意見が少ない、答えがない、コメントがない(離れた形の私)。申し訳ありません – Liam

答えて

0

RenderActionは、指定された子のアクションメソッドを呼び出し、その親ビューの結果をインラインでレンダリングします(アクションを呼び出します)。現在のViewDataDictionaryオブジェクトを渡す必要がある場合はRenderPartialを使用し、達成しようとしているものに応じて、指定されたビューをHTMLエンコードされた文字列としてレンダリングする必要がある場合は、Partialを使用する必要があります。