2016-09-10 41 views
0

を示していない別のコントローラにアップロードされたイメージを合格します問題は、私はこのコントローラから「別の」コントローラは、画像情報を取得いけない、そのHttpPostedFileBaseがnullの画像2は、私は送信ボタンを押すと</p> <p>、私は私のコントローラでアップロードされた画像情報を読み取ることができます..私は一つの画像アップロード、送信ボタンを持つフォームを持っている

を参照して、別のコントローラにアップロードされた画像情報を渡す際に、ある

を(画像1参照)/0

それはなぜですか、wh私はできますか?

[HttpPost] 
[UserAuthorize(Roles = "User")] 
[ValidateAntiForgeryToken] 
public ActionResult NewProject(NewUserProjectViewModel model) 
{ 
     return RedirectToAction("previewProject", model); 
} 


[UserAuthorize(Roles = "User")] 
public ActionResult previewProject(NewUserProjectViewModel model) 
{ 
    return View(model); 
} 

IMAGE 1 IMAGE 2

答えて

0

RedirectToActionは、実際の場所ヘッダー値として新しいURLをブラウザに302応答を送信し、ブラウザはこの応答を読み、新しいURLに全く新しいGETリクエストを発行します。 。 RedirectToActionで複雑なモデルを渡すことはできません。

あなたは、あなたが直接あなたのNewProjectアクションメソッドからPreviewProjectビューを呼び出してオブジェクトを渡すことができますいくつかのオプション

  1. を持っています。

    public ActionResult NewProject(NewUserProjectViewModel model) 
    { 
        return View("previewProject", model); 
    } 
    
  2. あなたは、モデルデータを保持し、あなたがRedirectResult応答を送信するときに次のアクションメソッドに一意のIDを渡すことができます。 2番目のアクションメソッドでは、この一意のIDにパラメータを使用し、データを再度取得して使用できるものを使用します。

    public ActionResult NewProject(NewUserProjectViewModel model) 
    { 
        var id = SaveModelAndReturnUniqueID(model); 
        return RedirectToAction("previewProject", new {id=id}); 
    } 
    public ActionResult previewProject(int id) 
    { 
        NewUserProjectViewModel model= GetNewUserProjectViewModel(id); 
        return View(model); 
    } 
    
  3. SessionまたはTempDataなどの一時的な永続化メカニズムを使用します。

How do I include a model with a RedirectToAction?

を見てみましょう
関連する問題