나는 ContentPart를 사용하여 만든 간단한 위젯을 가지고 있습니다. ContentPart에는 적절한 드라이버가 있으며 위젯은 내 오차드 사이트의 어느 곳에 나 배치 할 수 있으며 모든 것이 훌륭하게 작동합니다! 위젯은 사용자로부터 일부 데이터를 캡처하여 유효성을 검사하고 처리 한 다음 위젯에 성공 응답을 표시해야합니다.Orchard CMS의 위젯 템플릿 무시
이 작업을 수행하려면 모델을 처리하고 유효하지 않은 경우 동일한 MyForm보기를 반환하거나 유효한 경우 FormSuccess보기를 반환하는 POST 요청을 받아들이는 컨트롤러를 정의했습니다. Widget Part 템플릿은 @Html.Partial("MyForm")
을 사용하여 div가 POST 응답으로 포함되어 업데이트되는 Ajax 양식이 포함 된 MyForm보기를 표시합니다. 컨트롤러는 데이터에 따라 MyForm보기 또는 FormSuccess보기를 반환합니다.
내 디자이너는 MyForm 뷰와 FormSuccess 뷰의 부분 뷰를 재정의해야 할 필요가 있지만 부분 뷰 템플릿이 아닌 파트 표시 템플릿을 쉽게 재정의 할 수 있습니다.
내가 지금 @Html.Partial("MyForm")
을 사용하고 있기 때문에 이것이 가능하지 않은 이유라고 생각합니다. 나는 @Display(New.MyForm())
을 대신 사용하면 현재 테마의 Views 폴더에 MyForm.cshtml이라는 파일을 작성하여 MyForm보기를 덮어 쓸 수 있음을 발견했습니다. 이것이 정확히 필요한 것은 무엇입니까? 그러나 어떻게해야합니까? @Display
컨트롤러 동작에서?
현재로서는 return this.PartialView("MyForm", model)
또는 return this.PartialView("FormSuccess")
을 사용하고 있으며 원래의보기를 사용하지만 재정의 된보기는 사용하지 않습니다. ShapeResult가 있음을 알았지 만 이것이 올바른 일이고 동적 생성자 매개 변수를 생성하는 방법을 모르는지 확실하지 않습니다. 또한 이상적으로 모델을 동적 때 LabelFor, TextboxFor 및 ValidationMessageFor HtmlHelper 메서드를 사용할 수 있도록 강력한 형식의 모델을 MyForm보기가 필요합니까?
누구나 전에 이런 식으로 한 적이 있습니까? 아니면 누구에게도 안내를 제공 할 수 있습니까?
덕분에, 제이슨