mvc控制器的构造函数问题

时间:2019-06-24 16:56:16

标签: asp.net-mvc

当我单击“ Submitvales”按钮时,出现错误消息:

  

无法创建类型的实例   'PagedList.IPagedList`1 [[Modelname,projectName,Version = 1.0.0.0,   文化=中性,PublicKeyToken =空]]”。模型绑定的复杂类型   不得为抽象或值类型,并且必须具有无参数   构造函数。

由于上述错误,我添加了默认构造函数,然后又收到另一条错误消息:

  

InvalidOperationException:接受所有给定的多个构造函数   参数类型已在“控制器名称”类型中找到。应该   只能是一个适用的构造函数。

代码更新: 型号:

class ModelName
{
  public int ID{get;set;}
  public string Name{get;set;}

  public List<ModelName> ModelNameList{get;set;}
  public IPagedList<ModelName> ModelNamePagedList{get;set;}
}

控制器:

public class ControllerName : Controller
{
  public ActionResult Index()
  {
    var modelName = new ModelName();
    modelName.ModelNameList = this.SomeMethodWhichreturnslistOfModelNames();
    modelName.ModelNamePagedList = this.SomeMethodWhichreturnslistOfPagedModelNames();

    return View(modelName);
  }

  public ActionResult Save(ModelName _modelName)
  {
    // _modelName contains values of 'ModelNameList' but not 'ModelNamePagedList'
  }
}

查看:

@model ModelName
@using (Html.BeginForm("Save", "ControllerName", FormMethod.Post))
{
  <input type="submit" value="Save" class="btn btn-info" />

  @for (int i = 0; i < Model.ModelNamePagedList.Count(); i++)
  {
    @Html.DisplayFor(modelItem => Model.ModelNamePagedList[i].ID)
    @Html.HiddenFor(modelItem => Model.ModelNamePagedList[i].ID)

    @Html.TextBoxFor(m => Model.ModelNamePagedList[i].Name)
  }
}

0 个答案:

没有答案