2

Sitecore 6.6 をクリーン インストールし、このガイドを使用して MVC サポートを有効にしました。したがって、私の環境は Sitecore 6.6、ASP .NET MVC 3 および Razor、Microsoft SQL Server Express 2012、IIS 7.5 であり、Microsoft Visual Studio 2012 Express for Web を使用しています。私は次のコードを持っています:

@Model.PageItem.Fields["Title"];<br />
@Model.PageItem.Fields["Image"].GetValue(true, true);<br />
@Model.PageItem.Fields["Text"];<br />
Sitecore.Data.Items.MediaItem item = Model.PageItem.Fields["Image"].Item;
@Sitecore.StringUtil.EnsurePrefix('/', Sitecore.Resources.Media.MediaManager.GetMediaUrl(item));<br />

結果は簡単です:

Sitecore
<image mediaid="{4DFD3ABC-0BC0-41D2-BD38-705946A1368A}" mediapath="/Images/xbox" src="~/media/4DFD3ABC0BC041D2BD38705946A1368A.ashx" />
<p>Welcome to Sitecore</p> 
/sitecore/shell/~/media/110D559FDEA542EA9C1C8A5DF7E70EF9.ashx

最後の行で指定されたパスに移動すると、次のエラーが表示されます。

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

私はいくつかのことを試しました。

  1. Web.config の Media.UseItemPaths が trye (または false) に変更されました - 何も機能しません...
  2. Web.config の Media.RequestExtension を空に設定 (デフォルトは ashx)
  3. Web.config の許可された拡張機能に ashx を追加しました (通常の拡張機能を使用できない場合は、少なくとも ashx リンクを機能させたいため)
  4. IIS 7.5 に ashx を追加しました -> リクエスト フィルタリング -> ファイル名拡張子

もちろん、変更するたびに(念のため)サーバーを再起動し、ブラウザのキャッシュをクリアしました(実際には、いくつかのリクエストの後、クロムのキャッシュを無効にしました)。

私は運がない sdn.sitecore.net で解決策を探していました。実際、これまでに解決策を探すのに3時間以上費やしましたが、何が問題なのかわかりません...助けや提案をいただければ幸いです!

4

1 に答える 1

6

Sitecore.Mvc.Helpers.SitecoreHelper クラスの Field メソッドを使用すると、Image フィールドを出力できます。

3 つのフィールドを出力するビュー レンダリングの例を次に示します。

@using Sitecore.Mvc.Presentation
@using Sitecore.Mvc
@model RenderingModel

@Html.Sitecore().Field("Title")<br />
@Html.Sitecore().Field("Image")<br />
@Html.Sitecore().Field("Text")<br />

John West は、Sitecore MVC に関する広範なブログを書いています。Sitecore ASP.NET CMS の投稿で彼のAbout MVC Helpers を参照してください。

于 2013-02-09T20:04:37.893 に答える