2012-05-11 94 views
0

如何通過HTML.BeginForm()將ViewBag中的值傳遞給控制器​​?將Razor視圖中的ViewBag值傳遞給控制器​​,使用HTML.Begin

@using (Html.BeginForm("SaveServiceItemCategory", "Admin", 
         FormMethod.Post, new { Sku = @ViewBag.SkuCategory })) 
{ 
    <span>Service Item Sku : @ViewBag.SkuCategory</span> 
} 

控制器

public ActionResult SaveServiceItemCategory(FormCollection formCollection, 
              string Sku) 
{} 

我越來越SKU爲空,而不是在ViewBag值。

這怎麼解決?

回答

3

接受要發佈的值的BeginForm沒有變體。

BeginFormIDictionary收集參數用於htmlAttributes。檢查您的HTML代碼,您可能會在名爲Sku的表單上看到一個屬性。這些屬性不會發布到服務器。

您需要創建一個表單元素來包含要發佈的數據。

@Html.Hidden("Sku", @ViewBag.SkuCategory); 
+0

這似乎沒有發佈到服務器上。只有模型中的項目纔會發佈。 –

+1

已發佈所有表單域。默認聯編程序可能不會將它們附加到指定的模型,但您會看到它們在FormCollection中可用。 –

相關問題