2011-12-29 2 views
2

우리는 ASP.net MVC 3 웹 사이트를 가지고 있습니다. 우리는 AJAX를 사용하여 나중에 게시해야하는 클라이언트 측의 숨겨진 필드에 많은 값을 저장해야했습니다. 어떤 이유로 나는 숨겨진 입력 필드 대신 숨겨진 div 태그를 사용하여 성능이 약간 향상되었다고 생각합니다.숨겨진 div 태그 대 asp.net mvc 3 웹 사이트에 클라이언트 측 데이터를 저장하기위한 숨겨진 입력 필드?

<style> 
.displaynone { display : none } 
</style> 

<div id="fld1" class="displaynone">Product Name</div> 
<div id="fld2" class="displaynone">123 $</div> 
<div id="fld3" class="displaynone">Catalog</div> 

올바른/최선의 방법은 무엇인가요?

업데이트 : 나는 내 대답을 가지고 있지만 - 의미 론적으로 숨겨진 필드는 정확하고, 더 많은 생각을 얻기 위해 세부 사항을 추가합니다.

페이지 당 N 개의 항목 목록이 있으며 각 항목에는 UI에 일부 정보가 표시됩니다. 사용자 작업에 따라 선택한 항목의 모든 데이터를 다른 데이터베이스 테이블에 추가해야합니다. UI에 대한 대부분의 데이터가 이미 있으므로 항목 당 숨겨진 필드를 한 번 더 추가하기로 결정하고 DB에서 다시 가져 오는 대신 모든 데이터를 게시했습니다.

Point1- 게시해야하는 모든 데이터가있는 항목 당 하나의 FORM을 만들었지 만 사용자가 선택한 항목에 POST 데이터에 일반적인 Javascript 기능을 사용했습니다.

var fld1Val = $('fld1' + itemNo).text(); 

(위의 주어진) POINT2 - 그래서 우리가 FORM 이외의 항목 당 숨겨진 div 태그의 설정했습니다.

대린 - 디미트로프 @
  1. : 우리는 페이지 당 여러 항목이있는 경우, 다른 ID로 항목 당 하나 개의 양식이 AJAX를 사용하여 데이터를 게시하는 공통 기능보다 더 나은 무엇입니까?

  2. @awrigley : 숨겨진 입력 태그가 FORM 외부의 의미 (의미)가없는 경우 숨겨진 div보다 더 나은 선택을 할 수 있습니까?

지금

답변

3

숨겨진 필드는 의미 상으로 정확합니다. 당신은 단순히 하나의 $('#someForm').serialize() 호출로 전체 형태를 직렬화하고 서버로 보낼 수 있습니다 : 다음

@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "myForm" })) 
{ 
    @Html.HiddenFor(x => x.ProductName) 
    @Html.HiddenFor(x => x.Price) 
    @Html.HiddenFor(x => x.Catalog) 
} 

과 :

var form = $('#myForm'); 
$.ajax({ 
    url: form.attr('action'), 
    type: form.attr('method'), 
    data: form.serialize(), 
    success: function(result) { 
     // TODO: do something with the results sent by the server 
    } 
}); 
+0

감사합니다. 위의 업데이트에 회신 해 주시겠습니까? – Avi

+0

@Avi를 사용하면 각 항목마다 다른 양식을 사용하여 단일 스크립트로 눈에 띄지 않게 AJAXify 할 수 있습니다. –

0

나는 스타일 시트가 숨겨진 DIV 정보를 노출, 쉽게 해제 할 수 있습니다 때문 경우 숨겨진 입력, 더 나은 방법이라고 제안했다. 또한, 그것은 의미 론적으로 정확 해 보입니다.

0

입력 태그를 입력 ehrmmm,위한 것입니다. Div 태그는 내용을 구조화하기위한 것입니다. 숨겨진 입력은 의미 (의미)를 가지며, 숨겨진 div는 그렇지 않습니다.

숨겨진 입력에 의미를 부여하려면 양식 태그로 입력해야합니다. 양식 태그로 묶인 html 외부에는 의미가 없습니다.

적절한 말을 할 필요는 없지만 적절한 HTML을 작성해야합니다.

+0

감사합니다. 위의 업데이트에 회신 해 주시겠습니까? – Avi

0

스크립트 요소의 JSON 객체에 해당 데이터를 저장하는 데는 많은 부분이 있습니다. 이 정보가 필요한 유일한 이유는 JavaScript 사용을위한 것이므로 JavaScript에 정보를 저장하는 것이 캡슐화 패턴에 가장 적합합니다.

관련 문제