我在我的 asp.net mvc4 视图中包含了一些模型,因此我创建了一个包含其他两个模型的基本视图模型:
namespace MyNamespace.Models
{
public class CustomViewModel
{
public FirstTypeModel FirstViewModel { get; set; }
public SecondTypeModel SecondViewModel { get; set; }
}
}
和观点:
@model MyNamespace.Models.CustomViewModel
@using (Html.BeginForm("AddFields", "Configure", FormMethod.Post))
{
(...)
<div id="componentId">
@Html.LabelFor(m => m.FirstViewModel.SelectedCompTypeId, new { @id = "componentIdLabel" })
@Html.DropDownListFor(m => m.FirstViewModel.SelectedCompTypeId, Model.FirstViewModel.CompTypeItems, new { @name = "SelectedCompTypeId", @id = "componentType" })
</div>
(...)
<input id="submitAddComp" type="submit" value="@Resource.ButtonTitleAddComponent" />
}
在我的控制器中:
public ActionResult AddFields(string param1, string param2, string param3, int selectedCompTypeId)
{
...
}
当单击提交按钮时,我将 selectedCompTypeId 设为 null(param1、param2 和 param3 正确传递),但如果我从控制器内查看以下请求,则它具有正确的值:
Request["FirstViewModel.SelectedCompTypeId"]
那么如何将正确的参数传递给控制器以使 selectedCompTypeId 不为空?
注意:只包括一个模型,在创建包含其他两个的基本模型之前,它工作正常。之前,lamba 表达式是 m => m.SelectedCompTypeId 而不是 m => m.FirstViewModel.SelectedCompTypeId。