3
この同じコードはMVC 2では正常ですが、MVC 3 Razorでは機能しません。ページが読み込まれると、以下のようにRazor内で呼び出されるHTMLHelperからメニューが読み込まれません。MVC 3ではレイザー出力が機能しませんが、MVC 2で動作します
ページに出力されないテスト用のハードコーディングされたメニュー。
using System.Collections.Generic;
using System.Web.Mvc;
using System.Web.Mvc.Html;
using myproject.Extensions;
public static class MenuHelper
{
public static string TabbedMenu(this HtmlHelper helper, IEnumerable<MenuTab> tabs)
{
//I have hard coded menu for testing purpose.
return "<div class='menu-image'><img src='/content/Images/common/on-left.gif' alt='' /></div><div class='on'><a class='over' href='/?Length=4'>Home</a></div><div class='menu-image'><img src='/content/Images/common/on-right.gif' alt='' /></div><a href='/Home/About'>About</a><a href='/Home/Contact'>Contact</a>";
}
}
以下はRazor CSHTMLコードです。 @{ ... }
で
@{Html.TabbedMenu
(
new List<MenuTab>
{
MenuTab.Create("Home", "Index", "Home"),
MenuTab.Create("About", "About", "Home"),
MenuTab.Create("Contact", "Contact", "Home")
}
);}
OK]をクリックして のpublic static HtmlString TabbedMenu(このHtmlHelperのヘルパー、IEnumerableをタブ) { \tリターン新しいHtmlString( "HERE HTMLメニューとしてABOVE")以下のようにこれを変更し、 Html.TabbedMenu @ } ( \t新しいリスト \t { \t \t MenuTab.Create( "ホーム"、 "インデックス"、 "ホーム")、 \t} ) エラーが を下回っています'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)'に最適なオーバーロードされたメソッドが一致しません。 'メソッドグループ'から 'System.Web.WebPages.HelperResult'に変換できません。\t c :\ Path myproject –
Pirzada
@user:最初の '('の前に空白を削除するか '@(Html.TabbedMenu(...))' Razorパーサーはその空白を見て解析を停止します。 (それはあなたが財産を使っていると思う) – SLaks
ありがとう。出来た。 – Pirzada