2011-01-31 11 views
5

私のプロジェクトで<% if (Model.Folders != null){}%>が正常に動作していますが、このコードを剃刀書式に変換すると例外が発生します。メソッド 'Write'のオーバーロードがMVC3の剃刀書式で0引数を取る

@if (Model.Folders != null) 
{ 
    <div>@Model.Folders</div> 
} 

および0123:私の

Html.RenderPartial(ViewData["abc"] as string, Model); 

上MVC3カミソリのフォーマット、」で私がifテストはこのようにする必要がありカミソリでダイナミックビュー

+0

この行にもこのエラーがあります: '@ {isAlt =!isAlt;}'。それは非常に奇妙です、私はブール変数を切り替えるだけです。以前は '@ {var isAlt = true;}'と宣言していて、中間のどこかで 'class =" @(isAlt? "alt":string.Empty) "'を使用していました。 。理由があるはずです... – CallMeLaNN

+0

私は答えを得ました:http://stackoverflow.com/questions/4466469/razor-no-overload-for-method-write-takes-0-arguments – CallMeLaNN

答えて

7

を使用しています

@{Html.RenderPartial(ViewData["abc"] as string, Model);} 

またはあなたも同等と少し短いPartial方法使用できます:このような

@Html.Partial(ViewData["abc"] as string, Model) 
+0

私は「@ "System.Web.Mvc.HtmlHelper "には、 'Partial'という名前の適用可能なメソッドがありませんが、拡張メソッドを持つように見えます。Html.Partial(ViewData ["abc"]を文字列として、Model) \t " –

+0

@amir、あなたのビューは強く型付けされていないので、' Model'変数を使うことはできません。あなたのビューの上に '@model AppName.Models.SomeModel'といういくつかのモデルタイプにあなたのビューが強く型付けされていることを確認してください。 –

+0

Stongly Typed、 "@model AppName.Models.SomeModel"を使用しました –

2

を、私は同じ問題があったが、私は私のHtml.RenderPartialを包むことによってそれを解決しました次のように:

 <text> 
     @{ 
      Html.RenderPartial(ViewData["abc"] as string, Model); 
      } 
    </text> 

または

<div> 
@{ 
Html.RenderPartial(ViewData["abc"] as string, Model); 
} 
</div> 
関連する問題