Здравствуйте, ребята. У меня небольшая проблема с моим методом [HTTPost], посмотрите мой код ниже:
МОДЕЛИ (модели Case и Person имеют больше атрибутов, чем представлено здесь)
public class Case
{
public string caseNumber
{
get;
set;
}
}
public class Person
{
public string name
{
get;
set;
}
public string lastName
{
get;
set;
}
}
public class ModelViewContainer {
public Person Person {
get;
private set;
}
public Case Case{
get;
private set;
}
public ModelViewContainer (Person person, Case casep)
{
Persona = persona;
Case = casep;
}
}
В МОЕМ КОНТРОЛЛЕРЕ
public ActionResult PresentView() {
return View(new ModelViewContainer(new Person(),new Case()));
}
[HttpPost]
public ActionResult PresentView(ModelViewContainer model) **<--never enters here**
{
if (ModelState.IsValid){
....
}
else
return View(model);
}
ПРОСМОТР
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcApplication1.Models.ModelViewContainer>" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm()) {%>
<%: Html.ValidationSummary(true) %>
Name
<%: Html.TextBoxFor(model => model.Persona.nombre)%>
<%: Html.ValidationMessageFor(model => model.Persona.nombre)%>
LastName
<%: Html.TextBoxFor(model => model.Persona.apellido)%>
<%: Html.ValidationMessageFor(model => model.Persona.apellido)%>
Case Number
<%: Html.TextBoxFor(model => model.Case.caseNumber)%>
<%: Html.ValidationMessageFor(model => model.Case.caseNumber)%>
<p>
<input type="submit" value="Create" />
</p>
<% } %>
</asp:Content>
Ошибка результата: System.MissingMethodException: для этого объекта не определен конструктор без параметров.
Isможно ли запечатлеть модель в httpost или нет?Если нет, как я могу это сделать?(Извините за мой английский) Пожалуйста, помогите мне.
Редактировать-- Исправления
public class ModelViewContainer {
public Person Person {
get;
set; //not private
}
public Case Case{
get;
set; //not private
}
public ModelViewContainer (Person person, Case casep)
{
Persona = persona;
Case = casep;
}
public ModelViewContainer (){ //add parammeter less constructor
}
}