我有这样的情况:开始形式不提交继承视图模型ASP.NET MVC4
[Serializable]
public class FormBuscarCorteReligacaoViewModel
{
public CorteReligacao CorteReligacao { get; set; }
}
[Serializable]
public class OrdensFinalizadasViewModel : FormBuscarCorteReligacaoViewModel
{
public Manutencao Manutencao { get; set; }
public DateTime? DataInicio { get; set; }
public DateTime? DataFim { get; set; }
public OrdensFinalizadasViewModel()
{
}
}
所以在这里我的孩子是OrdensFinalizadasViewModel
。我有这样的:
@model ProjetoPath.OrdensFinalizadasViewModel
@using (Html.BeginForm("Buscar", "OrdensFinalizadas", FormMethod.Post, new { id = "FormBuscarOrdensFinalizadas" }))
{
@Html.Partial("~/Views/Shared/_FormBusca.cshtml", Model)
}
而且我的控制器:
[HttpPost]
public ActionResult Buscar(OrdensFinalizadasViewModel modelOrdensFinalizadas)
{
//DO STUFF
}
我要的是能够访问的FormBuscarCorteReligacaoViewModel
CorteReligacao
。但它的唯一填充OrdensFinalizadasViewModel
属性。
我的看法~/Views/Shared/_FormBusca.cshtml
:
@using Capgemini.Telemetria.STCortes.Domain.ViewModel.Common
@model Capgemini.Telemetria.STCortes.Domain.ViewModel.Common.FormBuscarCorteReligacaoViewModel
@{
var modelOrdensFinalizadas = Model as ProjectPath.OrdensFinalizadasViewModel;
}
<table class="tabela_filtro" style="border: 1px solid #ccc; margin-bottom: 5px; font-size: 11px" />
<thead>
[...]
</thead>
<tbody>
@if(modelOrdensFinalizadas != null)
{
<tr>
<td>
<label>
Data
</label>
</td>
<td>
@Html.TextBoxFor(model => modelOrdensFinalizadas.DataInicio, new { id = "dataInicio", @class = "campoData", @placeholder = "Data Inicio" })
</td>
[...]
</tr>
}
<tr>
<td>
<label class="label_filtro">
CP
</label>
</td>
<td>
@Html.EditorFor(model => model.CorteReligacao.CoreCp, new { style = "width: 20px;" })
<span class="validation-message">@Html.ValidationMessageFor(model => model.CorteReligacao.CoreCp)</span>
</td>
[...]
<input type="image" src="~/Content/img/icons/enviar.gif" value="Buscar" title="Buscar" />
</td>
</tr>
</tbody>
是否有可能做到这一点?我有点新的asp.net MVC。 希望任何帮助/消化。
问候
嘿,哥们。感谢您的回答!不过,我已经可以使用“父亲”实体访问“CorteReligacao”。问题是,每当我尝试发布孩子和父亲时,孩子对象在控制器端都会收到null。 –
多数民众赞成在一个奇怪的..我添加了一个建议,添加构造函数,但并不总是工作.. – user5103147
你''base()'是redudant ....我仍然尝试,但没有奏效。然而,我尝试在控制器方法上添加一个新的参数:'公共ActionResult Buscar(OrdensFinalizadasViewModel modelOrdensFinalizadas,CorteReligacao corteReligacao)'和'CorteReligacao'得到填充,但不是作为'OrdensFinalizadasViewModel'的孩子' –