가능한 경우 DataTables 및 DataSets을 피하는 것이 좋습니다. 그들은 DTO의 최악의 종류로 간주되어야합니다. 왜냐하면 당신이 포함하고있는 것을 언제까지 보증 할 수 없기 때문입니다. (콜 체인을 원래의 위치로 되돌려 놓고 어디에서나 변경되지 않는 한).
적절한 뷰 모델을 사용하면 포함 된 내용을 볼 수 있기 때문에 뷰에서 보는 대신 모든 형식 논리를 넣을 수 있습니다.
난 당신이보기 모델을 사용해야하는 이유에 대한 블로그 항목 작성했습니다
: 귀하의 질문에 관해서는 http://blog.gauffin.org/2011/07/three-reasons-to-why-you-should-use-view-models/
을 : 가장 쉬운 방법은 jQuery를/Ajax를 사용하고 적절한 사용하는 경우 쉽게 JSON을 (반환하는 것입니다 보기 모델).
<script type="text/javascript">
$(function() { //<-- runs the script when the document has been loaded
$('#formid').submit(function() { // <--- hook form submit event
$.post('@Html.Action("CalcOne")?option='+ $('#id').val(), function(data) {
var result = data.result;
$.post('@Html.Action("CalcTwo")?option='+ result, function(data) {
//do third calc
});
});
});
});
</script>
그리고 컨트롤러에
: 대답에 대한
이
[HttpPost]
public ActionResult CalcOne(int option)
{
//do some calculations
return Json(new MyModel{ Result = option + 1 });
}
감사합니다, 나는 동의, 나는 일반적으로 ViewModels를 사용합니까. 그러나이 경우 데이터 테이블에 저장되고 사용자에게 표시되는 데이터는 VM 내에 쉽게 캡슐화 될 수 없습니다. 사용자가 선택한 항목과 피벗 또는 계산할 항목에 따라 열이 상당히 다를 수 있습니다. 이것이 제가이 경우에 DT를 선택한 이유입니다. –
답변은 여전히 적용됩니다. 예제 접근 방식과 같은 것을 사용해야합니다. – jgauffin