Post アクションでモデル プロパティを取得する必要があるため、それらの要素を非表示にする必要がありますが、 の型に問題がありDictionary <string, string>
ます。これは私のモデルです:
public class ViewModel{
...
public ViewPart ViewPart { get; set; }
}
public class ViewPart {
...
public Dictionary<string, string> Flags { get; set; }
}
そして私のコントローラー:
Dictionary<string, string> flags = new Dictionary<string, string>();
flags.Add("kind", "Edit");
flags.Add("Command", "Save");
ViewModel model = new ViewModel(){ Flags = flags };
return View(model);
ビューで:
@foreach(var item in Model.ViewPart.Flags) {
<input type="hidden" id="ViewPart_Flags_@(item.Key)" value="@item.Value" name="ViewPart.Flags[@(item.Key)]" />
}
また、私はこれを試します:
@foreach(var item in Model.ViewPart.Flags) {
@Html.HiddenFor(modelItem => item)
}
投稿アクションの更新:
[HttpPost]
public ActionResult MyPostAction(ViewModel model){
//model.ViewPart.Flags is null
}
しかし、Post アクションでFlags
は常に null です。なぜですか? 私のせいはどこですか?ビューからアクションに変数を渡すより良い方法はありますか?