2012-11-19 2 views
0

약 25 개의 필드가있는 양식이 있습니다. 아래에는 몇 가지 필드가 나와 있습니다. ASP.NET MVP 응용 프로그램에서 변경되는 필드 만 저장하는 방법은 무엇입니까?

<div class="form-field"> 
    @Html.LabelFor(m => m.FormData.FirstName) 
    @Html.TextBoxFor(m => m.FormData.FirstName) 
</div> 
<div class="form-field"> 
    @Html.LabelFor(m => m.FormData.LastName) 
    @Html.TextBoxFor(m => m.FormData.LastName) 
</div> 
<div class="form-field"> 
    @Html.LabelFor(m => m.FormData.MiddleInitial) 
    @Html.TextBoxFor(m => m.FormData.MiddleInitial, new { @class = "small" }) 
</div> 

난 형태의 값을 저장하고 ModelState 유효한 경우 나중에 환자 개체와 동기화되는 FormData 객체를 갖는다. 환자는 세션에 저장됩니다.

patient.FirstName = formData.FirstName; 
patient.LastName = formData.LastName; 
patient.MiddleInitial = formData.MiddleInitial; 

현재 데이터가 게시 될 때마다 모든 필드가 환자에게 저장됩니다. 변경된 항목 만 저장하는 방법이 있습니까? 또는 여기에서 변경 사항을 추적 하시겠습니까? 나는 그것이 효율성을 향상시킬 것이라고 생각 하나?

답변

0

각 필드에 대해 다음처럼 작성할 수 있습니다 :하지만 훨씬 효율성이 향상되지 않습니다

if(!patient.FirstName.Equals(formData.FirstName, StringComparison.CurrentCultureIgnoreCase)) 
    patient.FirstName = formData.FirstName; 

합니다. 이것은 쉬운 방법입니다. 다른 방법은 < 입력> 요소 및 기타에 대한 onchage 이벤트를 사용하여 클라이언트에서 자바 스크립트를 사용하여 변경 내용을 추적하는 것이지만 그보다 훨씬 어렵습니다. 문제는 그것을 프로그래밍하고 나중에 유지하는 데 시간이 걸린다는 것입니다. 가장 쉬운 방법은 변경되지 않은 데이터를 변경된 데이터로 저장하는 것입니다. 성능 문제가있을 경우 이러한 변경 작업을 수행 할 수 있습니다. 희망이 도움이됩니다.

0

진정으로 원하는 것을 얻는 가장 좋은 방법은 녹아웃과 같은 제 3 자 자바 스크립트 라이브러리를 사용하는 것입니다. 이는 기본적으로 서버가 일부 데이터를 제출하지 않는 한 사용자가 브라우저에서 변경 한 사항을 알지 못하기 때문입니다. KO.JS를 사용하려면 MVVM 접근 방식을 전달해야합니다.

그런 다음 같은 작업을 수행 할 수 있습니다

@Html.TextBoxFor(m => m.FormData.LastName, new { data-bind="value: lastName"}) 

것처럼 JS 코드가 보일 것이다 : 여기

var ViewModel = function(first, last) { 
    this.firstName = ko.observable(first); 
    this.lastName = ko.observable(last); 

    this.fullName = ko.computed(function() { 
     return this.firstName() + " " + this.lastName(); 
    }, this); 
}; 

ko.applyBindings(new ViewModel("FirstName", "LastName")); ​ 

가 변경 될 때 데이터를 처리하기 위해 넉 아웃을 사용하는 좋은 예입니다

http://jsfiddle.net/rniemeyer/LkqTU/

0

조기 최적화 - http://c2.com/cgi/wiki?PrematureOptimization. 실제 성능 저하가있을 때까지 그렇게하지 마십시오. 변경된 항목 만 저장하면 약간의 차이가 있음을 거의 눈치 채지 못할 것입니다. 가장 가능성이있는 것은 코드를 읽기 쉽게 만듭니다.

관련 문제