ビューモデルは次のようになります。MVC HttpPost強く型付けされたモデルのヌル
public class AsmenysInfoViewModel2
{
public asmenys_info Asmenys_info { get; set; }
public List<miestai> Miestai { get; set; }
public string Test { get; set; }
}
そして、二つの作用があります。取得と投稿。
public ActionResult Index(long? id)
{
var model = new AsmenysInfoViewModel2();
model.Test = "Test";
model.Asmenys_info = BllFactory.DalFactory.AsmenysInfoDal.GetById(id.Value);
return View(model);
}
[HttpPost]
public ActionResult Index(AsmenysInfoViewModel2 asmenys_info)
{
var model = asmenys_info;
return View(model);
}
そして、私のビューは次のようになります。私はEditorForまたはTextBoxForを使用している場合
@model MODELS.AsmenysInfoViewModel2
@{
ViewBag.Title = "Index";
}
@using (Html.BeginForm("Index", "AsmenysInfo", FormMethod.Post))
{
@Html.ValidationSummary()
@Html.TextBoxFor(m => m.Asmenys_info.adresas)
<input type="submit" value="Išsaugoti" />
}
問題ではない - 結果は同じです。投稿時のモデルプロパティAsmenys_infoは常にnullです。私のクラスAsmenysInfoViewModel2がasmenys_infoタイプのプロパティを含んでおらず、 "string、int etc"(強く型付けされていない)だけを含んでいれば、それはうまくいくでしょう。 私の質問は次のとおりです:
投稿するにはどうすればいいですか投稿すると強く型付けされたプロパティを持つモデルはnullになりませんか?
は公共 'に'(asmenys_info asmenys_info) '公共のActionResultインデックスを変更してみてください
変更モデル内のプロパティの名前以外に、パラメータの名前とそれが正常にバインドします、 ActionResult Index(AsmenysInfoViewModel2 asmenys_info) ' –
同じ問題が発生しました。ここで間違ったコードを投稿しました。あなたが言ったようだった。私は私の問題を引き起こすコードを修正するために自分の投稿を編集しました。問題はasmenys_infoクラスへのインスタンスがないので、m.Asmenys_info.adresasプロパティを設定できないということです。しかし、私はそれを解決する方法を知らない。 – user2179088
私の経験によると、複雑なモデルフォームの投稿は不可能です。しかし、あなたはjqueryに 'json'オブジェクトを作成し、フォームを投稿することでそれを行うことができます。 –