Я разрабатываю простое приложение mvc. Код выглядит следующим образом:Форма представления частичных представлений в MVC
Модель .cs:
public class CustomModel
{
public IEnumerable<lang> lstlang { get; set; }
public IEnumerable<org> lstOrg { get; set; }
}
public class lang
{
public int langid { get; set; }
public string langName { get; set; }
}
public class org
{
public int orgId { get ;set;}
public string orgName { get; set; }
}
Controller.cs
public Action Index()
{
// Get data from database and fill the model
var model = new CustomModel();
return View(model);
}
public Action Partial()
{
// Get data from database and fill the model
var model = new CustomModel();
return PartialView(model);
}
[HttpPost]
public Action Partial(FormCollection frm, CustomModel model)
{
// Get data from database and fill the model
var model = new CustomModel();
return PartialView(model);
}
Index.cshtml
@model CustomModel
@Html.TextboxFor(x => x.lang.FirstOrDefault().id);
<input type="button" id="btn" />
@Html.RenderPartial("Partial", model)
Partial.cshtml
@model CustomModel
@Html.TextboxFor(x => x.lang.FirstOrDefault().id);
<input type="submit" id="submit" />
Дело в том, когда я нажимаю кнопку отправки в Partial.cshtml
странице, и рассмотрим модель в методе HttpPost в public Action Partial(FormCollection frm, CustomModel model)
, модель содержит null
для обоих списков lstlang
и lstOrg
, но formcollection[0]
передаст выбранное значение текстового поля.
Что мне не хватает, или это правильный способ использования частичных представлений?
Посмотрите на HTML вашей генераторной (в частности, 'name' атрибута) -' @ Html.textboxfor (х => x.lang.firstordefault() ид.) 'Не имеет никакого отношения к вам модель вообще , [См. Этот ответ] (http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943), чтобы понять некоторые основные привязки модели к коллекции. –