ASP.NET MVC View Не отправлять обратно в метод Post и ожидать конструктор без параметров? - PullRequest
1 голос
/ 12 мая 2010

Я пытаюсь опубликовать некоторые данные с помощью созданной мною модели представления, и она работает для меня для одного из проектов. Но сейчас я делаю это

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;}
}

Так что при отладке он никогда не входит в метод параметров для Post, хотя в представлении я добавил форму и кнопку, которая отправляет данные, и страница наследует от viewmodel. Я получаю сообщение об ошибке, утверждая, что он ожидает конструктор без параметров. почини это ? , Я написал метод сообщения без параметров, и он входит в этот метод

1 Ответ

2 голосов
/ 12 мая 2010

Ошибка, которую вы видите, вероятно, происходит в ModelBinder. Конструктор без параметров ожидается в классе MyViewModel, а не в Action. Убедитесь, что ваш MyViewModel имеет конструктор без параметров.

public class MyViewModel
{
   // stuff
   public MyViewModel() {}
}
...