web-dev-qa-db-ja.com

Url.ActionはAsp.netMVCでどのように機能しますか?

これは私が尋ねた別の質問にいくらか関連していますが、私はそれを別々に尋ねない理由を理解しています。

次のようなものをビューに配置するとします

<td><img src='<%= Url.Action( "DisplayImage" , "User" , new { id = item.id} ) %>' alt="" /></td>

これを表示することになっていますか?

<td>
   <img src='/User.mvc/DisplayImage?id=U00915441' alt="" />
</td>

または、src属性の値は、実際にはUserController GetImageアクションの結果に置き換えられますか?

11
zSynopsis

アクションの実行結果ではなく、URLを返し、アクションへのパスを作成します。

結果は次のようになります。

<td>
   <img src='/User.mvc/DisplayImage?id=U00915441' alt="" />
</td>

サンプルコード。ユーザーモデルの画像がバイト配列に格納されていることを前提としています。 LINQを使用していて、プロパティが Binary の場合は、 ToArray() メソッドを使用してバイト配列に変換します。ユーザーがログインしてGETリクエストを使用する必要がある属性に注意してください。

[Authorize]
[AcceptVerbs( HttpVerbs.Get )]
public ActionResult DisplayImage( string id )
{
     var user = ...get user from database...

     return File( user.Image, "image/jpeg" );
}

}

9
tvanfosson