0

메서드 내에서 매개 변수 유형을 정의하려는 경우가 있습니다. 내가 이런 일을 수행한다면 :나중에 매개 변수 유형 지정 및 MVC 명명 규칙 유지

public class UserModel 
    { 
     public string InputName { get; set; } 
    } 

    [HttpPost] 
    public ActionResult Index(object obj) 
    { 
     UserModel test = obj as UserModel; 
     ViewBag.Test = test.InputName; 

     return View(); 
    } 

의 이름 지정 규칙, 양식을 게시 할 때 내 obj에있을 예정이다 것을를 개최하지 않는 이유는 무엇입니까? 나는 생각한다. obj 유형이 다른 위치에 있기 때문에이 작업을 수행하고 싶습니다. 어떻게 든 완료 될 수 있습니까? 덮어 쓸 필요가 있습니까?

편집 : - 내 문제를 해결하는 또 다른 방법.

MVC 웹 응용 프로그램에 양식을 게시 할 때. ActionResult에서 매개 변수 유형을 선언하여 데이터를받습니다. 그리고 여기에 명명 규칙이 적용됩니다. 하지만 매개 변수 유형을 즉시 알지 못하면 어떻게 될까요? 나중에 ActionResult 메소드에서 매개 변수 유형을 선언하고 거기에서 일어나는 명명 규칙을 어떻게 얻을 수 있습니까?

내 영어가 유감스럽고 유감 스럽습니다.


의견을 보내 주셔서 감사합니다. 나는 내 문제에 접근하는 또 다른 방법을 찾았다. 그리고 지금 내가 대신 여기 붙어 있어요 :)

View to String from another controller

+0

영어가 매우 이해하기 어렵습니다. 질문을 다시 말해주십시오. –

+0

확실하지 않으며 테스트 할 시간이 없습니다. 공용 ActionResult 인덱스 (동적 obj) –

+0

동적이 작동하지 않습니다. #Yuiry 내가 지금 다른 와트에서 설명하려고 노력했습니다 :) – BjarkeCK

답변

0

하기는 강력한 형식의 액션 매개 변수를 사용하여 MVC와 하지를 사용하여 자신에게 몹쓸 일을하고 있습니다. Index 액션에 대한 모델이 분리되어 있다면, 각각 자신의 Index 액션을 가진 컨트롤러를 여러 개 사용해야 할 것입니다. 최소한 동일한 컨트롤러에서 별도의 작업을 수행해야합니다. 어쩌면 당신은 클라이언트 측에서 특정 작업 호출하는 결정을 처리 할 수있는 :

<script type="text/javascript"> 
    $(function() { 
     $('#myButton').click(function(e) { 
      var url = "User/Index"; 
      data = { InputName: 'username' }; 
      if(someCondition) { 
       url = "User/AnotherAction"; 
       data = { SomeOtherModelField: 'someOtherValue' }; 
      } 

      $.ajax({ 
       url: url, 
       type: 'POST', 
       data: data, 
       success: function(e) { 
        alert('post succeeded'); 
       } 
      }); 
     }); 
    }); 
</script> 

을 그리고 컨트롤러는 다음과 같다 수 :

public class UserController : Controller 
{ 
    [HttpPost] 
    public ActionResult Index(UserModel model) 
    { 
     // do UserModel stuff 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult AnotherAction(SomeOtherModel model) 
    { 
     // do SomeOtherModel stuff 
     return View(); 
    } 
} 
1
[HttpPost] 
    public ActionResult Index(object obj) 
    {  
     UserModel test = new UserModel(); 
     TryUpdateModel(test); 
     ViewBag.Test = test.InputName;  
      return View();  
     } 

이 방법을 사용해보십시오.