2012-04-16 3 views
0

最後に、RazorでMVC 3を学び始めました。私はどのモデルをチェックしているかに問題があります。カミソリCでモデルを比較する#

私はカミソリ/ MVC 3にMVC 2のコード例のこの3種類を変換する必要があります。ヘルプのあらゆる種類の

<li class="<%= Model is FooModel ? "active" : null %>"><a href="<%= Url.Action("Foo") %>Foo</a></li> 
<li class="<%= Model is DooModel || Model is BooModel ? "selected" : null %>"><a href="<%= Url.Action("Doo") %>">Doo</a></li> 


<% if (Model is FooModel){ %>Foo<% } else if(Model is DooModel){ %>Doo<% } %> 


<% if (Model is FooModel) 
    Html.RenderPartial("Foo"); 
    else if(Model is DooModel) 
    Html.RenderPartial("Doo"); %> 

感謝を。このような

+2

どの部分で問題がありますか? – gideon

+0

全部3部。 Razorベースのコードに変換する必要があります。 Atm私は、例えば "

  • Foo
  • "うまくいけないのはどれですか? – mannge

    答えて

    1

    何か作業をする必要があります:

    <li class="@(Model is FooModel ? "")"><a href="@(Url.Action("Foo"))">Foo</a></li> 
    <li class="@(Model is DooModel || Model is BooModel ? "selected")> 
         <a href="@(Url.Action("Doo"))">Doo</a></li> 
    
    @if (Model is FooModel) 
    { 
        //not sure what Foo is here 
        //if it's just a string/text just do: 
        @:Foo 
    } 
    else if(Model is DooModel) 
    { 
        @Doo //what is Doo here? 
    } 
    
    @if (Model is FooModel) { 
        Html.Partial("Foo") 
    } else if(Model is DooModel) 
    { 
        Html.Partial("Doo") 
    } 
    

    注:(1)あなたはnullを返すべきではありませんが、ただ何も返しません。 (2)あなたが第1ブロックと第2ブロックの中で何を望んでいるのかわからないのは、FooDooです。

    +0

    Fooは単なるテキストです。 '@ Foo'を' Foo 'または' @:Foo'に置き換えてください。 –

    +0

    はいそれを更新しました。 – gideon

    +0

    魅力のように働きます。ありがとう、爆発! – mannge