2012-05-11 54 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中可用。 –

相关问题