2012-05-11 3 views
0

HTML.BeginForm()을 통해 ViewBag의 값을 컨트롤러로 전달할 수 있습니까?HTML 뷰를 사용하여 면도기 뷰에서 컨트롤러로 값 전달

@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의 값을 널 (null)로 SKU를 받고, 그리고하고있다.

어떻게 해결할 수 있습니까?

답변

3

게시 할 값을 허용하는 BeginForm 변종이 없습니다.

BeginFormIDictionary 컬렉션 매개 변수는 htmlAttributes입니다. HTML 코드를 확인하면 양식에 Sku이라는 속성이 표시됩니다. 이러한 속성은 서버에 게시되지 않습니다.

게시 할 데이터를 포함 할 양식 요소를 만들어야합니다.

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

이것은 서버에 게시하지 않는 것 같습니다. 모델의 항목 만 게시하고 있습니다. –

+1

모든 양식 필드가 게시됩니다. 기본 바인더는 지정된 모델에 첨부하지 않을 수도 있지만 FormCollection에서 사용할 수 있음을 알 수 있습니다. –

관련 문제