Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc PartialView数据未发回控制器_Asp.net Mvc - Fatal编程技术网

Asp.net mvc PartialView数据未发回控制器

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

我正在加载基于dropdownlist值的部分视图,如以下链接中所建议的。我能够显示局部视图并在文本框中输入值。但当我回发时,我无法在控制器中获取值。我正在获取除此部分视图值之外的所有其他值

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" ..>