뷰에 대한 ViewModel 인스턴스화

Rohit

뷰 모델의 바인딩 숨겨진 필드를 업데이트합니다 .

제 상황을 설명해 드리겠습니다. 내가 완전히 틀렸을 수도 있지만 이것이 나에게 문제를 일으키는 것이라고 생각합니다.

ViewModel 프로젝트 가 있습니다.
뷰 모델 만들기

[Bind(Exclude="List")]
    public class ProjectCreateViewModel : ProjectViewModelBase
    {
        public CourseViewModelBase CourseVM { get; set; }

        public ProjectCreateViewModel()
            : base()
        {
            this.CourseVM = new CourseViewModelBase();
        }    
    }

Project View Model Base프로젝트 의 기본 viewModel이며 관련된 모든 작업이 여기에서 파생되므로 속성 이름을 반복해서 쓸 필요가 없습니다.

Create View Model Base 는 ProjectViewModelBase (ProjectController에서 처리 또는 사용)와 유사하지만 코스 (CourseController에서 처리) 용입니다.

이제 ProjectCreateViewModel 을 사용하는 "Create New Project" 양식을 만들었습니다 . 그러나 Form post action에서는 CourseVM 이 항상 null 입니다.

새 프로젝트 .cshtml 만들기

@model LMSPriorTool.ViewModels.ProjectCreateViewModel

@* --- labels and other stuff -- *@
@using (Html.BeginForm("CreateNewProject", "Project", 
                       FormMethod.Post, new { @class = "form-horizontal", 
                       name = "createNewProjectForm" }))
{
     <!-- Hidden Fields -->
     @Html.HiddenFor( x => x.ProjectId)
     @Html.HiddenFor( x => x.CourseVM)   // CourseVM is null in post action
     @Html.TextBoxFor(x => x.CourseVM.CourseNumberRoot)    // This is displayed properly                             
}

ProjectController

[HttpGet]
public ActionResult CreateNewProject(CourseViewModelBase courseVM = null)
{
      ProjectCreateViewModel projectCreateViewModel = new ProjectCreateViewModel
      {
           CourseVM = courseVM,
      };

      // OTHER STUFF

      return View("CreateNewProject", projectCreateViewModel);
}

HTTPPOST 작업에서 오류가 발생했습니다 . CourseVM을 양식의 숨겨진 필드로 제공했지만 CourseVM이 null로 표시됩니다.

여기에 이미지 설명 입력

가능한 문제 나는HTTPPOST 작업이 발생할 때 View가 ProjectCreateViewModel의 새 인스턴스를 만들고CourseVM을 null로 인스턴스화하려고 할 때 ProjectCreateViewModel 의 생성자에 문제가있습니다. 그런 다음 CourseVM이 null로 표시되는 HTTPPOST 메서드에 동일한 인스턴스가 전달됩니다.

업데이트 : 문제 루트 원인 복잡한 개체는 숨겨진 필드를 사용하여 뷰 모델에 바인딩 할 수 없습니다.

어떤 제안이나 생각이라도 감사합니다.

CodingIntrigue

당신은 필요하지 않습니다 HiddenForCourseVM. MVC는 바인딩하기 때문에 자동으로 클래스를 생성합니다.CourseVM.CourseNumberRoot

현재 CourseVMMVC가 할 수없는 숨겨진 입력에서 복잡한 객체 인 바인딩을 시도하고 있으므로 null을 반환합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

knockout.js에서 applyBindings에 대한 viewmodel을 인스턴스화 할 때 바인딩이 중단됩니다.

분류에서Dev

뷰에 대한 ngRoute 인스턴스화 실패

분류에서Dev

ViewModel에서 인스턴스 개체의 속성에 대한 구독보기

분류에서Dev

DataTemplate의 Button 명령에 대한 CommandParameter로 부모 ViewModel 인스턴스 전달

분류에서Dev

클래스에 대한 참조에서 인스턴스화

분류에서Dev

클래스에 대한 참조에서 인스턴스화

분류에서Dev

SQLAlchemy 인스턴스에 대한보다 간결한 초기화

분류에서Dev

[type : Factory, primary_type : 'yodgorbek.komilov.musobaqayangiliklari.viewmodel.MainViewModel'에 대한 인스턴스를 만들 수 없습니까?

분류에서Dev

MvxTabViewController에 대한 여러 MVVMCross ViewModel 호스팅 및 초기화

분류에서Dev

MvxTabViewController에 대한 여러 MVVMCross ViewModel 호스팅 및 초기화

분류에서Dev

메타 클래스를 통해 인스턴스화 된 인스턴스에 대한 JSON 개체 직렬화

분류에서Dev

TyphoonAssemblyActivator를 사용한 후 UIStoryBoard에서 뷰 컨트롤러 인스턴스화

분류에서Dev

람다 추상화 ADT에 대한 Show 인스턴스

분류에서Dev

Xamarin.Froms-viewmodel 생성자에서 2 개의 서비스 인스턴스화

분류에서Dev

ViewModel에 대한 C # WPF 선언 인터페이스

분류에서Dev

여러 뷰에 대한 하나의 ViewModel 또는 단일 뷰에 대한 여러 ViewModel?

분류에서Dev

클래스를 인스턴스화하는 함수에 대한 명명 규칙

분류에서Dev

Jest에 대한 Feathers 인스턴스를 한 번 초기화하는 방법

분류에서Dev

[]에 대한 MonadFix 인스턴스

분류에서Dev

A => A in Cats에 대한 Monoid 인스턴스

분류에서Dev

대화 상자를 열기 전에 TreeViewer 인스턴스화

분류에서Dev

클래스의 최대 인스턴스화에 오류 발생

분류에서Dev

coq에서 실존 변수의 인스턴스화에 대한 규칙

분류에서Dev

[temp.variadic]에서 팩 확장의 인스턴스화에 대한 문구

분류에서Dev

하나의 뷰에 대한 두 개의 ViewModel

분류에서Dev

한 번에 클래스 정의 및 인스턴스화

분류에서Dev

Azure Databricks에 대한 EventHubSourceProvider를 인스턴스화 할 수 없습니다.

분류에서Dev

가변 템플릿 함수에 대한 명시 적 인스턴스화

분류에서Dev

직접 FileDescriptor 인스턴스화에 대한 사용 사례가 있습니까?

Related 관련 기사

  1. 1

    knockout.js에서 applyBindings에 대한 viewmodel을 인스턴스화 할 때 바인딩이 중단됩니다.

  2. 2

    뷰에 대한 ngRoute 인스턴스화 실패

  3. 3

    ViewModel에서 인스턴스 개체의 속성에 대한 구독보기

  4. 4

    DataTemplate의 Button 명령에 대한 CommandParameter로 부모 ViewModel 인스턴스 전달

  5. 5

    클래스에 대한 참조에서 인스턴스화

  6. 6

    클래스에 대한 참조에서 인스턴스화

  7. 7

    SQLAlchemy 인스턴스에 대한보다 간결한 초기화

  8. 8

    [type : Factory, primary_type : 'yodgorbek.komilov.musobaqayangiliklari.viewmodel.MainViewModel'에 대한 인스턴스를 만들 수 없습니까?

  9. 9

    MvxTabViewController에 대한 여러 MVVMCross ViewModel 호스팅 및 초기화

  10. 10

    MvxTabViewController에 대한 여러 MVVMCross ViewModel 호스팅 및 초기화

  11. 11

    메타 클래스를 통해 인스턴스화 된 인스턴스에 대한 JSON 개체 직렬화

  12. 12

    TyphoonAssemblyActivator를 사용한 후 UIStoryBoard에서 뷰 컨트롤러 인스턴스화

  13. 13

    람다 추상화 ADT에 대한 Show 인스턴스

  14. 14

    Xamarin.Froms-viewmodel 생성자에서 2 개의 서비스 인스턴스화

  15. 15

    ViewModel에 대한 C # WPF 선언 인터페이스

  16. 16

    여러 뷰에 대한 하나의 ViewModel 또는 단일 뷰에 대한 여러 ViewModel?

  17. 17

    클래스를 인스턴스화하는 함수에 대한 명명 규칙

  18. 18

    Jest에 대한 Feathers 인스턴스를 한 번 초기화하는 방법

  19. 19

    []에 대한 MonadFix 인스턴스

  20. 20

    A => A in Cats에 대한 Monoid 인스턴스

  21. 21

    대화 상자를 열기 전에 TreeViewer 인스턴스화

  22. 22

    클래스의 최대 인스턴스화에 오류 발생

  23. 23

    coq에서 실존 변수의 인스턴스화에 대한 규칙

  24. 24

    [temp.variadic]에서 팩 확장의 인스턴스화에 대한 문구

  25. 25

    하나의 뷰에 대한 두 개의 ViewModel

  26. 26

    한 번에 클래스 정의 및 인스턴스화

  27. 27

    Azure Databricks에 대한 EventHubSourceProvider를 인스턴스화 할 수 없습니다.

  28. 28

    가변 템플릿 함수에 대한 명시 적 인스턴스화

  29. 29

    직접 FileDescriptor 인스턴스화에 대한 사용 사례가 있습니까?

뜨겁다태그

보관