1

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 でした。

4

1 に答える 1