0

매개 변수에 액세스하지 않고 model 유형을 얻는 방법이 있습니까?컨트롤러에서 모델 유형 가져 오기

내 컨트롤러 :

[HttpPost] 
public ActionResult SomeAction(SomeViewModel model) 
{ 
    SomeMethod(/* How to pass models's type here? */) 
} 

private void SomeMethod(Type type) 
{ 
    // come code 
} 

방법 SomeMethod(Type type) 많은 다른 작업에 호출됩니다. 및

Type modelType = typeof(SomeViewModel); 
or 
Type modelType = model.GetType(); 

은 적합하지 않습니다.

+0

보기에서 모델을 사용하려면 맨 위에 모델 유형을 정의해야합니다. 나는 당신이 여기서 성취하려는 것을 이해하지 못합니다 –

+0

죄송합니다. 나는 post 속성을 추가하는 것을 잊었다. –

+0

다시 귀하의 모델은 여기에 정의되어 있습니다. 내가 생각할 수있는 유일한 방법은 여러 모델을 액션으로 정의하는 것입니다 (SomeViewModel 모델, SomeViewModel2 model2 등). 어떤 점에서 null 체크를하면 어느 것이 전달되었는지 확인할 수 있습니다. –

답변

0

View의 맥락에서 이야기하고 있습니까? 그렇다면 ViewModel 클래스 중 하나를 사용하여 강력한 형식의 View를 생성 할 수 있습니다. 그런 다음 View에서 해당 모델의 유형을 갖게됩니다. 보기의 맨 위 줄.

0

모델에 대한 오해와 양식이 서버에 제출하는 내용이 있다고 생각합니다. 대부분의 경우 모델에는 title, description, userprofile 등과 같은 페이지에 대한 몇 가지 정보가 있습니다. 양식에 제출을 푸시하면 양식에 포함 된 필드 만 작업에 전송됩니다. 그것은 대부분의 데이터는 해당 작업에서 사용할 수없는 것을 의미 수동

를 생성하는 코드를 살펴보세요해야 :

<h1>@Model.ArticleTitle</h1> 
<p>@Model.ArticleDescription</p> 
<form method="post"> 

@Html.EditFor(x=> x.CommentTitle) 
@Html.EditFor(x=> x.CommentBody) 

</form> 

브라우저가 서버에만 CommentTitle과를 보내는 경우를 CommentBody. ArticleTitle 및 ArticleDescription은 전송되지 않습니다.

.u