Selamlar;
Soru biraz uzun gibi umarım anlatabilirim.
public class Param
{
public string Code {get;set;}
public string Name {get;set;}
public dynamic Value {get;set;}
}
public class BaseModel
{
public string Code {get;set;}
public string Name {get;set;}
public List<Param> Params {get;set;}
}
public class ModelList
{
List<BaseModel> bm;
public ModelList()
{
var prm = new List<Param>;
prm.Add(new Param{Code="Param1"});
prm.Add(new Param{Code="Param2"});
bm.Add(new BaseModel{ new Code = "Model1",Params=prm};
var prm2 = new List<Param>;
prm2.Add(new Param{Code="Param1"});
prm2.Add(new Param{Code="Param2"});
prm2.Add(new Param{Code="Param3"});
prm2.Add(new Param{Code="Param4"});
bm.Add(new BaseModel{ new Code = "Model2",Params=prm2};
}
}
olarak classlarım var. "ModelList" içindeki "Model1" ve "Model2" yi ilk sayfadan combo içerisinden
"Name" bilgisi gösterek comboda seçilen modelin "Code" bilgisini controllera aktardıktan sonra.
Aktarılan model kodunu "ModelList" içerisinden linq ile seçip diğer sayfaya aktarıyorum.
2 nci sayfada seçilen modeli ve bu modele ait "List<Param>" bilgisine göre sayfayı şekillendiriyorum.
Buraya kadar bir sorun yok.
Parametre bilgilerini sayfada doldurduktan sonra başka bir controllera aktarmaya çalışıyorum fakat "List<Param>"
count olarak doğru olmasına rağmen içeriği boş olarak geliyor. Params.Count bilgisinin doğru olmasının nedeni ise ilgili
modeli ModelList içinden çekmemden kaynaklı. Bunda sorun yok ama sayfada bu params içeriğini yani value bilgisini alamıyorum.
//parametre codelarını gösterip value girilmesi gereken 2 nci sayfa burda herşey doğru gibi
@Html.HiddenFor(m => m.Code)
@Html.HiddenFor(m => m.Name)
<br />
<label>Model Name : </label> @Html.DisplayFor(m => m.Name)
<br />
@using (Html.BeginForm("Summary", "Home", FormMethod.Post))
{
int i = 0;
@foreach (var a in Model.Params)
{
<input type="text" name="Params[@i].Code" >
i++;
}
}
//2 nci sayfanın uğrayacağı controller
public IActionResult TaskSummary(BaseTask mdl)
{
return View(mdl);//burada mdl.Code ve mdl.Name dolu mdl.params count ise duruma göre 2 ve ya 4 oluyor
//fakat mdl.Params[0].Code ve mdl.Params[0].value ....3 null görünüyor
}
//3 ncü sayfa
<label> @(Model.Name) </label>//doğru bilgi var
@foreach (var a in Model.TaskParams)
{
i++;
<input type="text" value="TaskParams[@i].Value" /> //bu kısım null
<br />
}