2011-02-24 57 views
1

我是新來的asp.net,並一直在通過教程 - 直到第10課,但我無法獲得部分視圖的工作。音樂商店2教程 - VB轉換

控制器: - ' ' GET:/我的購物/ CartSummary

<ChildActionOnly()> 
    Public Function CartSummary() As ActionResult 
     Dim cart = ShoppingCart.GetCart(Me.HttpContext) 

     ViewData("CartCount") = cart.GetCount() 

     Return PartialView("CartSummary") 
    End Function 

查看: - CartSummary: -

@modeltype TEST.Cart 

@Html.ActionLink("Cart (" & ViewData("CartCount") & ")", _ 
         "Index", _ 
         "ShoppingCart", _ 
         New With {.id = "cart.GetCount"}) 

_layout: -

<!DOCTYPE html> 
<html> 
<head> 
    <title>@ViewData("Title")</title> 
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 
    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script> 
</head> 

<body> 

    <div id="header"> 
     <h1> ASP.NET MVC MUSIC STORE</h1> 
     <ul id="navlist"> 
      <li class="first"><a href="@Url.Content("~")" id="current">Home</a></li> 
      <li><a href="@Url.Content("~/Store/")">Store</a></li> 
      <li>@Html.RenderAction("CartSummary", "ShoppingCart")</li> 
      <li><a href="@url.Content("~/StoreManager/")">Admin</a></li> 
     </ul> 
    </div> 
    <div id="main"> 
      @RenderBody() 
    </div> 
</body> 
</html> 

誤差返回的是「表達式不產生av ALUE」。 我可以刪除標籤,然後顯示CartSummary。

感謝您的任何幫助。

回答

1

如果你想在這裏使用Html.RenderAction助手是正確的語法:

@Code 
    @Html.RenderAction("CartSummary", "ShoppingCart") 
End Code 

或者如果你喜歡一個班輪:

@Code @Html.RenderAction("CartSummary", "ShoppingCart") End Code 

,或者如果你想使用的Html.Action幫手這是語法:

@Html.Action("CartSummary", "ShoppingCart") 

對比這兩個C#等價物:

@{Html.RenderAction("CartSummary", "ShoppingCart");} 
@Html.Action("CartSummary", "ShoppingCart") 

作爲一個VB.NET的傢伙,你可能會發現following article有用。

+0

謝謝。 @ Html.Action工作。 – HowD 2011-02-25 13:26:42

+0

他們的方式,你已經寫的RenderAction將不適用於VB。這會在IDE中產生「表達式不產生值」錯誤。 雖然@ Html.Action語法是正確的.... – 2011-10-04 14:09:58