如何通过表单集

时间:2015-09-26 13:47:34

标签: asp.net-mvc

public class Employee
{
    [Key]
    public int ID { get; set; }
    public string Name { get; set; }
    public int DesignationID { get; set; }

    public virtual Designation Designation { get; set; }
}

控制器

public void AccountUpdate(Employee employee) {}

查看: -

<label name= "Name"> Peter </label>
<label name= "DesignationName"> Manager </label>

我将表单集合对象发送到我的 AccountUpdate 操作方法,我收到员工姓名但不是指定名称< / strong>即可。 您能告诉我如何在员工对象

中的Action方法中访问指定名称

由于

2 个答案:

答案 0 :(得分:1)

ASP.NET MVC模型绑定要求模型上的属性与网页上的字段完全匹配。因此,您需要更改模型属性名称以匹配字段名称:

public class Employee
{
    [Key]
    public int ID { get; set; }
    public string Name { get; set; }
    public int DesignationID { get; set; }

    public virtual Designation DesignationName { get; set; }
}

或与模型属性名称匹配的字段名称:

<label name= "Name"> Peter </label>
<label name= "Designation"> Manager </label>

或者,如果Designation类型是无法从string直接转换的复杂对象,则需要实现自定义模型绑定器和/或类型转换器({{ 3}})。

答案 1 :(得分:1)

How do I create/use a form and model-binder to pass collections from View => Controller

要列出作为另一个类的对象集合的模型属性,请尝试以下方法:

  def has_reviewed?
      redirect_to album_reviews_path, notice: "You've already written a review for this album." if current_user.reviews.exists?(movie: @movie)
  end

在视图中,您必须将人物对象中的汽车对象列为使用属性名称和索引

命名的输入
public class Person {
   public int ID { get; set;}
   public string Name { get; set;}
   public List<Car> Cars { get; set;}
}

public class Car {
   public int ID { get; set; }
   public string name { get; set;}
}

使用此功能,您的模型会自动使用表单

发送的输入填充属性Cars