でリストをバインドする方法をここに私のシナリオです:私は強く今、私は別の内側のこの部分のビューをレンダリングしたいは<SimpleObject> MVC
@model SimpleObject
<div>
<input type="button" value="Button" name="btn" />
<div>
<div>
@Html.TextBoxFor(Model => Model.FirstName, new { @class = "", @maxlength = "50" })
</div>
<div>
@Html.TextBoxFor(Model => Model.LastName, new { @class = "", @maxlength = "50" })
</div>
SimpleObject
のための部分的なビューを入力作成した
public class ComplexObject
{
public int SomeProperty {get;set;}
public List<SimpleObject> Object {get;set;}
}
public class SimpleObject
{
public string FirstName {get;set;}
public string LastName {get;set;}
}
ビュー(MainView)。ユーザーがSimpleObjectの部分表示ボタンをクリックし、 がMainViewで同じ部分表示を再度生成できるという考え方です。私はAjaxのアクションを作成し、単純なビューを生成し、MAINVIEWするためにそれを追加することができ
MainView
SimpleView -> Add
SimpleView -> Add
が、問題はsimpleobjectがComplexObjectに結合されていないということですので、ここでそれがどのように見えるかです。
これは、MainViewでpartialviewをレンダリングする方法です。
@Html.Partial("_PartialView", Model.SimpleObject, new ViewDataDictionary(ViewData)
{
TemplateInfo = new System.Web.Mvc.TemplateInfo
{
HtmlFieldPrefix = "Simple"
}
})
MAINVIEWはクリックし提出し、全体ComplexObject
が提出された上でのコントローラのアクションを呼び出します。ここで私のリストSimpleObject
は常にNULLです。
public ActionResult CreateComplex(ComplexObject object)
{
// HERE LIST<SIMPLEOBJECT> is always NULL
}
私はここで間違っていますか?
で始まるあなたは 'にインデクサを追加することではないので、自分自身で' partial'が動作しません。 name'属性を使用します。いくつかのオプションについては、[この回答](http://stackoverflow.com/questions/28019793/submit-same-partial-view-called-multiple-times-data-to-controller/28081308#28081308)を参照してください。 –