2011-03-07 17 views
1

私は脳のおならを少し持っています。それは月曜日でなければなりません...ASP.NET MVCフォーム提出

私はMVCフォームを持っています。これはユーザーが画像を投稿できるようにします。

イメージはフォルダに保存され、別のコントローラとアクションにリダイレクトしてイメージを表示します。

イメージを表示するためにコントローラのアクションにイメージ名とパスを戻すためのオプションは何ですか?

// Handles the updload, contains a control (ascx) 
    // and the control's action method is in another controller 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    // I want this page to display the image uploaded in the Upload.ascx control 
    // that is in the index method above: 
    public ActionResult Result() 
    { 
     ViewData["MyImage"] = ??? 
    } 

ありがとうございます。

+0

ハザードチェーバーガー?これが私の考えであれば、あなたはそれを得るでしょう。 –

答えて

0

画像はどこに保存されていますか?あなたのコンテンツエリアやデータベースには?それがデータベースにある場合、私はコントローラ/アクションURLを構築してその画像をdbとして表示します。コンテンツエリアにある場合は、アップロードしたファイルの名前に基づいてURLを作成できます。ビューデータにURLを渡すのではなく、モデルを作成するのがよいでしょうが、ビューデータは有効な(つまり動作します)代替です。

public ActionResult Result(int id) // db storage 
{ 
    return View(new UploadModel 
        { 
         ImageUrl = Url.Action("display", "image", new { id = id } 
        }); 
} 


public ActionResult Result() // content area 
{ 
    var imageName = ... get image name from ??? ... 
    return View(new UploadModel 
        { 
         ImageUrl = Url.Content("~/content/images/uploads/" + iamgeName); 
        }); 
}