0

次のようなイメージ参照を使用している mvc 4 プロジェクトがあります。

<img alt="Progress Update" class="projectListNotificationIcon" src="@Url.Content("~/Images/progressUpdateIcon.png")"/>

@Url.Content は、このプロジェクトのローカル コピーとライブ サーバー コピーの両方で機能するために必要です。これはうまく機能しますが、2 つの異なる画像から選択する別の場所があり、コードは次のようになります。

var imagePath = (item.IsOverdue) ? "../../Images/lateIcon.png" : "../../Images/onTimeIcon.png";

上記の if ステートメントで @Url.Content の順列を使用するにはどうすればよいですか? 私がやっている現在の方法は、ローカル プロジェクトでは機能しますが、サーバー上では機能しません。

4

2 に答える 2

2

試す:

<img src="@((item.IsOverdue) ? Url.Content("~/path/img1.jpg") : Url.Content("~/path/img2.jpg"))" alt="whatever" />

チルダ (~) 記号の使用は、サイトのルートに関連する URL を解決するため、おそらく鍵となります。

于 2012-08-17T12:56:08.513 に答える
0
<img src="@(item.IsOverdue ? "~/path/img1.jpg" : "~/path/img2.jpg")"  />

~asp.net mvcを使用すると、記号で始まる4つのURLがサイトの相対パスに自動的に変換されます。ここでそれについて読んでくださいhttp://www.davidhayden.me/blog/asp.net-mvc-4-the-new-tilde-slash-feature-in-razor-2

于 2012-08-18T02:56:18.247 に答える