2012-04-16 59 views
0

我終於開始學習使用Razor的MVC 3。我在檢查我傳遞的模型時遇到問題。Razor C中的模型比較#

我需要這個3種MVC 2示例代碼轉換爲剃刀/ MVC 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 2012-04-16 11:03:10

+0

全部3個部分。我需要將其轉換爲基於Razor的代碼。 Atm我試着用例如:「

  • Foo
  • 」哪個工作不太好 – mannge 2012-04-16 11:07:30

    回答

    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)我不確定你的第一和第二塊內需要什麼FooDoo以及你需要怎麼處理它們。

    +0

    我認爲Foo只是文本。用' Foo'或'@:Foo'替換'@ Foo'。 – 2012-04-16 11:11:54

    +0

    Yep更新了它。 – gideon 2012-04-16 11:13:41

    +0

    工作就像一個魅力。感謝爆炸! – mannge 2012-04-16 11:15:08