asp.net mvc4 ビューにいくつかのモデルを含めたので、他の 2 つのモデルを含むベース ビュー モデルを作成しました。
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がnullにならないように、正しいパラメーターをコントローラーに渡す方法は?
注: 1 つのモデルのみを含め、他の 2 つを含むベース モデルを作成する前は、正しく機能していました。以前は、lamba 式は m => m.SelectedCompTypeId ではなく、m => m.FirstViewModel.SelectedCompTypeId でした。