Asp.net mvc PartialView数据未发回控制器
我正在加载基于dropdownlist值的部分视图,如以下链接中所建议的。我能够显示局部视图并在文本框中输入值。但当我回发时,我无法在控制器中获取值。我正在获取除此部分视图值之外的所有其他值Asp.net mvc PartialView数据未发回控制器,asp.net-mvc,Asp.net Mvc,我正在加载基于dropdownlist值的部分视图,如以下链接中所建议的。我能够显示局部视图并在文本框中输入值。但当我回发时,我无法在控制器中获取值。我正在获取除此部分视图值之外的所有其他值 div id=“divfloorplan”> $('#ddlFloorplan')。更改(函数(){ var numberofloorplan=$(this.val(); var data={“id”:numberofloorplan}; $.ajax({ 网址:“平面布置图”, 类型:“POST”, d
div id=“divfloorplan”>
$('#ddlFloorplan')。更改(函数(){
var numberofloorplan=$(this.val();
var data={“id”:numberofloorplan};
$.ajax({
网址:“平面布置图”,
类型:“POST”,
data:data,//如果需要发布模型数据,请使用
成功:函数(结果){
$(“#divFloorPlans”).html(“”);
$(“#divFloorPlans”).html(结果);
}
});
});
@模型IList
@对于(inti=1;im[i-1]。卧室,ViewData[“卧室”]作为列表})
@Html.DropDownListFor(m=>m[i-1].Bathrooms,ViewData[“Bathrooms”]as List})
@Html.TextBoxFor(m=>m[i-1].MinPrice})
@Html.TextBoxFor(m=>m[i-1].MinPrice})
@TextBoxFor(m=>m[i-1].MinSqFt,新的{@placeholder=“From”})
@TextBoxFor(m=>m[i-1].MaxSqFt,新的{@placeholder=“To”})
}
我的模型看起来像这样
public class ItemEditVM
{
public FloorPlan FloorPlan { get; set; }
public IList<FloorPlan> ListFloorPlans { get; set; }
}
公共类ItemEditVM
{
公共平面布置图平面布置图{get;set;}
公共IList ListFloorPlans{get;set;}
}
我的控制器
//Partial View Returning Controller
[HttpPost]
public ActionResult FloorPlans(int id)
{
var model = new ItemEditVM();
model.NumOfFloorplans = id;
model.ListFloorPlans = new List<FloorPlan>();
for (int i = 0; i < id; i++)
{
model.ListFloorPlans.Add(new FloorPlan { FloorPlanName = "", Bathrooms = "", Bedrooms = "", MaxPrice = "", MinPrice = "", MaxSqFt = "", MinSqFt = "" });
}
return View("FloorPlan", model.ListFloorPlans);
}
//Create Controller
[HttpPost]
public ActionResult Create(ItemEditVM model)
{
if (ModelState.IsValid)
{
}
}
//部分视图返回控制器
[HttpPost]
公共行动结果平面图(int id)
{
var model=newitemeditvm();
model.numofloorplan=id;
model.ListFloorPlans=新列表();
for(int i=0;i
您的局部视图模型是IList
,它正在使用生成控件
<input name="[0].MinPrice" ..>
<input name="[1].MinPrice" ..>
在我看来
@model ItemEditVM
@for (int i = 1; i <= Model.ListFloorPlans.Count; ++i)
{
....
@Html.TextBoxFor(m => m.ListFloorPlans[i - 1].MinPrice})
....
}
@model ItemEditVM
@for(int i=1;i m.listfoorplans[i-1].MinPrice})
....
}
这将生成用于绑定到模型的正确名称属性
<input name="ListFloorPlans[0].MinPrice" ..>
<input name="ListFloorPlans[1].MinPrice" ..>
尝试将默认构造函数添加到ItemEditVM
,初始化this.FloorPlan=new FloorPlan vm()代码>@maxbrodini添加了构造函数。现在我得到的是属性,而不是值。在FloorPlanVM中有什么我必须做的吗?返回部分的控制器方法是什么?你的发布方法是什么?@StephenMuecke我用控制器更新了帖子你的部分需要是@model ItemEditVM
和@for(int I=1;I m.ListFloorPlans[I-1].MinPrice}
和控制器返回视图(“平面布置图”,型号);
@model ItemEditVM
@for (int i = 1; i <= Model.ListFloorPlans.Count; ++i)
{
....
@Html.TextBoxFor(m => m.ListFloorPlans[i - 1].MinPrice})
....
}
<input name="ListFloorPlans[0].MinPrice" ..>
<input name="ListFloorPlans[1].MinPrice" ..>