전체 페이지 다시 게시를하고 싶지 않으면 자바 스크립트를 사용해야합니다. 이런 유형의 경우 javascript/ajax가 필요합니다. 저는 개인적으로 MVC로 바꿨을 때이 모든 비즈니스 로직이 MVC 모델 외부에서 발생한다는 것을 받아 들여야하는 어려움을 겪었습니다. 그러나 결국 웹 사이트가 가장 잘 작동하게 만드는 것은 무엇이든 (사용자는 코드를 보지 못하고 얼마나 예쁜 지 알 수 있습니다.)
어쨌든, 자바 스크립트를 사용하지 않고 전체 페이지를 게시하지 않으면 부분은 해당 페이지/양식의 일부로 렌더링됩니다.
는
난 그냥 ...
... JQuery와 같은 ... 동일한 컨트롤러의 메소드에 JSON 호출을 트리거하는 첫 번째 드롭에 무언가를 onchange를 이벤트를 추가
$("#mydropdown").change(function() {
$.post("/Controller/DropdownChangedJSON", { firstdropdownvalue: $("#mydropdown").val() }, function(data) {
$("#seconddropdown").empty();
// loop through "data" to populate dropdown
}); //post
}); //mydropdown_change()
당신의 컨트롤러 :
public JsonResult DropdownChangedJSON(string firstdropdownvalue) {
//get results
List<datamodel> myarray = //something
return new JsonResult { Data = new { success = true, rows = myarray } };
}
희망이 내가 m에 대한 부분도있는 경우
그래서 당신의 말을하는 데 도움이 y 페이지를 "응용 프로그램"이라고합니다. 그리고 응용 프로그램 내부에 5 개의 부분보기가 있는데 전체 "응용 프로그램"부분보기를 즉시 제출할 수없고 모든 데이터를 저장할 수 없습니까? – kralco626
글쎄, 네가 제대로한다면. 부모보기에서 "Application"부분을 html.BeginForm()으로 둘러 쌉니다. - 그 부분 중 하나에 중첩 된 다른 양식 태그가 없는지 확인하십시오. 게시물 ActionResult가 모델을 예상하는 경우 필드 이름은 대소 문자를 구분해야합니다. 필드가 javascript/ajax로 채워지고 조작 된 경우에도 해당 최상위 양식의 모든 필드가 ActionResult에서 사용할 수 있어야합니다. – Losbear
따라서 중첩 된 부분 뷰는 응용 프로그램 부분 뷰와 동일한 모델을 가져야합니까? – kralco626