asp.net mvc 2에서 TryUpdateModel을 사용하는 시기와 이유는 무엇입니까?
TryUpdateModel이 어떻게 작동하는지 확인할 수 있는 기본 코드 샘플을 찾을 수 없는 것 같습니다.언제 사용하고 그 이유는 무엇입니까?
이 방법을 사용하여 지정된 컨트롤러를 통해 특정 뷰를 지원하는 모델을 업데이트할 수 있습니다.예를 들어 속성 Bar가 텍스트 상자로 채워진 Foo 개체를 표시하는 보기가 있는 경우 컨트롤러에서 메서드 Save()를 호출하고 TryUpdateModel을 호출하여 Foo 업데이트를 시도할 수 있습니다.
public class Foo {
public string Bar { get; set; }
}
// ... in the controller
public ActionResult Save() {
var myFoo = new Foo();
TryUpdateModel(myFoo);
}
지정된 막대 값으로 모형을 업데이트하려고 합니다.업데이트가 유효성 검사에 실패하면(예: Bar가 정수이고 텍스트 상자에 "hello"라는 텍스트가 들어 있는 경우) TryUpdateModel은 ViewData ModelState 업데이트를 유효성 검사 오류와 함께 전달하고 보기에 유효성 검사 오류를 표시합니다.
에 대한 보안 경고를 주의 깊게 살펴야 합니다.MSDN 문서의 NET Framework 4:
보안 참고 [Overload:시스템.웹.MVC.컨트롤러.포함할 속성 목록(화이트리스트) 또는 제외할 속성 목록(블랙리스트)을 사용하는 TryUpdateModel '1] 메서드입니다.명시적인 화이트리스트 또는 블랙리스트가 통과되지 않은 경우 [오버로드:시스템.웹.MVC.컨트롤러.TryUpdateModel`1] 메서드는 요청에 해당하는 값이 있는 모델의 모든 공용 속성을 업데이트하려고 합니다.악의적인 사용자는 이 취약성을 이용하여 사용자가 액세스를 제공하지 않는 속성을 업데이트할 수 있습니다.
https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.tryupdatemodel(v=vs.100).aspx
TryUpdateModel()
에서는 매개 변수를 작업 내부의 모델에 바인딩할 수 있습니다.이 기능은 데이터베이스에서 모델을 로드한 후 사용자 입력에서 전체 모델을 가져오는 대신 사용자 입력을 기준으로 모델을 업데이트하려는 경우에 유용합니다.
public ActionResult Update(int id) {
var service = new ServiceClass();
var record = service.LoadModel(id);
if (!TryUpdateModel(record)) {
// There was an error binding data
return View();
}
// Everything was ok, now save the record back to the database
service.SaveModel(record);
return View("Success");
}
와 유사한 작용을 합니다.UpdateModel()
성공하면 true를 반환하고 오류가 있으면 false를 반환합니다.UpdateModel()
에서는 코드가 조금 더 필요한 오류가 있는 경우 예외를 슬로우합니다.
참고: 업데이트할 속성을 제한할 수 있는 오버로드 중 하나를 사용할 수 있습니다.
우리는 또한 사용했습니다.TryUpdateModel
Action을 했습니다.HttpFormCollection
우리의 매개 변수로서 그리고 호출됩니다.TryUpdateModel
clean boolean 은 이로부터 을 통해 제어 또는 할 수 이로부터 반환된 깨끗한 부울 값을 사용하여 제어 흐름을 액션의 성공 또는 실패 메서드로 전달할 수 있습니다.
public ActionResult Save(HttpFormCollection formCollection)
{
var saveModel = new SaveModel(); // or from a Factory etc
var validModel = TryUpdateModel(_saveModel, formCollection); // order may be incorrect
return validModel ? Save(saveModel) : InvalidSaveModel(saveModel);
}
우리는 그것을 구축하는 것이 꽤 쉽다는 것을 알았습니다.HttpFormCollection
모든 유효성 검사 사례에 대해 테스트합니다. 따라서 조치를 테스트합니다.
언급URL : https://stackoverflow.com/questions/5268421/when-and-why-do-you-use-tryupdatemodel-in-asp-net-mvc-2
'programing' 카테고리의 다른 글
Ajax, php 및 jQuery를 사용하여 DIV 콘텐츠 변경 (0) | 2023.08.06 |
---|---|
배열에서 구조체의 값 변경 (0) | 2023.08.06 |
MARIADB는 TableSpaces를 지원합니까? (0) | 2023.08.06 |
스위프트의 수학적 함수 (0) | 2023.08.06 |
도커는 설치되어 있지만 도커 컴포지트는 설치되어 있지 않은 이유는 무엇입니까? (0) | 2023.08.06 |