2010-05-12 3 views
1

은 내가 작성한 뷰 모델을 사용하여 일부 데이터를 다시 게시하려고하고 내가 결코 디버깅을 지금ASP.NET MVC보기 Post 메서드로 게시하지 않고 매개 변수없는 생성자가 필요합니까?

public ActionResult Foo(string userkey) 
    { 
    vm.Value="Xvalue"; 
    return View(vm); 
    } 

    [HttpPost] 
    public ActionResult Foo(MyViewModel vm) 
    { 
    // process input 
    if (inputOK) 
     string value=vm.Value 
     return RedirectToAction("Index"); 
    return View(); 
    } 
public class MyViewModel 
{ 
public string Value { get; set; } 
public SomeClass newobj {get;set;} 

} 
public class SomeClass 
{ 
    public int id{get;set;} 
    public string str{get;set;} 
} 

그래서 그것을이 권리를 지내하지 오전 projects.But 중 하나 나를 위해 작동하면 매개 변수로 전환 방법에 대한 게시물보기 비록 내가 제출 양식과 버튼을 제출하고 viewmodel.I에서 페이지를 상속받은 매개 변수가없는 생성자를 기대하는 오류가 발생합니다 어떻게 수정합니까? . 매개 변수가없는 post 메서드를 작성하고 해당 메서드로 이동합니다.

+0

이 코드가 컴파일됩니까? 같은 서명을 가진 두 가지 방법이 있으십니까? – Rippo

+0

음, 죄송합니다 ... 실제로 첫 번째 방법은 다른 매개 변수가 필요합니다. 지금 수정했습니다. – Vishal

+0

코드를 수정 해 주셔서 기쁘게 생각합니다. 경로 코드와 양식 태그도 게시하십시오. – Rippo

답변

2

표시되는 오류는 ModelBinder에서 발생할 가능성이 있습니다. 매개 변수가없는 생성자는 작업이 아닌 MyViewModel 클래스에서 필요합니다. MyViewModel에 매개 변수없는 생성자가 있는지 확인하십시오.

public class MyViewModel 
{ 
    // stuff 
    public MyViewModel() {} 
} 
+0

글쎄, 나는 그 안에 생성자가 없습니다. . 기본 생성자를 사용하고 있습니다. – Vishal

+0

ViewModel의 코드를 볼 수 있습니까? – kmehta

+0

나는 위의 viewmodel을 게시했습니다 ... 실제로 폼의 someclass 객체의 값을 가져 오기 위해 드롭 다운 목록을 사용하고 있습니다. 문제는 ... Get 메서드에 드롭 다운 목록을 만드는 중입니다. 및 Model.Dropdownlist 사용하여 양식 및 그 잘못 간다 ... 만약 내가 그 ... 매개 변수가있는 메서드에서 간다 ..하지만 기본 생성자가 이해가 안 돼요. – Vishal

관련 문제