0

ViewBagの値を経由してコントローラーに渡すにはどうすればよいHTML.BeginForm()ですか?

@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)
{}

ViewBagの値ではなく、Skuをnullとして取得しています。

これはどのように解決できますか?

4

1 に答える 1

3

BeginFormポストされる値を受け入れるバリアントはありません。

IDictionaryコレクション パラメータBeginFormは forhtmlAttributesです。HTML コードを確認すると、フォームに という名前の属性が表示される可能性がありますSku。これらの属性はサーバーにポストされません。

投稿するデータを含むフォーム要素を作成する必要があります。

@Html.Hidden("Sku", @ViewBag.SkuCategory);
于 2012-05-11T15:42:21.770 に答える