動的なビューを作成しようとしています。ここで、ユーザーが入力する必要があるプロパティのリストを渡すことができます。ASP.Net Core 2.0 MVC動的モデルの更新
プロパティのコレクションは動的なので、特定のプロパティを表示するビューを構築することはできません。
私はプロパティ名とその初期値を表示できました。ユーザーは画面上の値を変更できますが、更新された値はモデルを更新するコントローラーアクションには反映されません。
私は動的モデルと、キーと値のペアのリストを使用しようとしました。
私はオーバーポーズ保護と関係があると考えています。プロパティは動的なので、更新アクションのBind属性でプロパティをリストすることはできません。ここで
は、コントローラのアクションメソッドです:
public IActionResult Test()
{
dynamic testObj = new ExpandoObject();
testObj.IntProperty = 100;
testObj.StringProperty = "A String Value";
return View(testObj);
}
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Test(ExpandoObject model)
{
return Ok();
}
ここでは、ビューの:
@model dynamic
@{
ViewData["Title"] = "Test";
}
<form asp-action="Test" method="post">
<div class="form-horizontal">
@foreach (var propertyName in ((System.Collections.Generic.IDictionary<string, object>)Model).Keys)
{
<div class="form-group">
<label class="col-md-2 control-label">@propertyName</label>
<div class="col-md-10">
@Html.TextBox(propertyName, ((System.Collections.Generic.IDictionary<string, object>)Model)[propertyName])
</div>
</div>
}
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</div>
</div>
</form>
これは新しいアプリケーションであり、そして私は、コードを最初にやっている - ので、モデルが多少変更することができます。本当に必要なのは、更新できるさまざまなプロパティを持つことができることだけです。
ありがとうございます。
ありがとうございます - 私はこれを見て、どうなるか見ていきます。 –