2013-08-08 4 views
1

이의 내가 이런 DIV 있다고 가정 해 봅시다채우기 @ Html.Hidden

<div id ="carmodel">Audi A4</div> 

이제 양식을 제출할 때 "Carmodel"div 안에있는 텍스트를 컨트롤러로 보내야합니다.

@using (Html.BeginForm("Method", "Controller")) 
{ 
    @Html.TextBox("textbox1", "") 
    @Html.TextBox("textbox2", "") 
    <input type="submit" value="Subtmit"/> 
} 

나는 숨겨진 필드를 사용하고 그것을 함께 게시에 대한 생각,하지만 난 "Carmodel"DIV의 텍스트와 함께 숨겨진 필드를 채울하는 방법을 모른다 :

@Html.Hidden("carmodelhiden", ""); 

그것은 같은 것 다음과 같이 텍스트를 검색하기 위해 JQuery를 사용해야하는 경우 :

var value = $("#carmodel").text(); 

그러나 이것을 어떻게 컨트롤러로 보냅니 까?

컨트롤러에있는 ajax 메서드가 폼이 게시되는 위치와 분리되어 있기 때문에 컨트롤러에 값을 처리하는 방법은 있지만 .ajax를 사용하여 게시하는 방법에 대해서는 생각했지만 게시하지 않는 것이 좋습니다.

아무도 조언 없습니까?

$('#carModelHidden').val(...); 
+1

스크립트 태그에 자바 스크립트를 넣는 것만으로도 효과가 있습니다. 이벤트에 연결해야합니다. – Botonomous

답변

4

당신은 숨겨진 입력 값을 설정해야합니다. 또한 강력한 형식의 뷰를 사용하여 모델의 특성과 바인딩하십시오.

@using (Html.BeginForm("Method", "Controller")) 
{ 
<div id ="carmodel"> 
@Html.HiddenFor(model => model.SomeProperty) 
</div> 
} 




@section scripts{ 
<script> 
// Hook into some event and set: 
$('#carModelHidden').val(...); 
</script> 
} 
+0

doh! 나는 그것에 대해 생각하지 않았다! 내가 그것을 시도하자 :) – Dimo

+0

BTW, 왜 안 그래? 귀하의 질문은 기본적으로 숨겨진 입력 값을 설정하는 방법을 묻습니다. – SLaks

+0

흠, 그렇지 않습니다. 값은 여전히 ​​""... – Dimo

1

문을 사용하여 양식 사이에 숨겨진 값을 넣어해야합니다 :

+0

왜 이런 식으로 바인딩합니까? 내보기에는 모델이 없습니다. – Dimo

+0

좋은 사례입니다. 컨트롤러에 그 값을 어떻게 전달할 예정입니까? 뷰백? – Botonomous

+0

대답은 여전히 ​​좋다. 바인딩은 제안 일 뿐이다. 바인딩이 옵션이 아니라면 HidenFor 대신 @ html.Hidden을 사용하면된다. – Botonomous