在asp.net核心绑定不起作用

时间:2017-04-10 19:34:10

标签: c# asp.net-mvc asp.net-core-mvc

我正在尝试从表单获取值以将对象保存在数据库中

我在MarcaController中有这个动作。       This was created by visual studio 2017

这个视图

This was created by visual studio 2017

这个模型

enter image description here

但是当我尝试创建一个新的Marca时,create action中的marca对象具有从表单派生的所有属性设置为null,我无法理解为什么

2 个答案:

答案 0 :(得分:0)

其他选项是创建一个单独的模型,只包含您想要的属性并绑定该模型。

public class MyModel
{
   public int Iva {get;set;}
   public string Path {get;set;};
   // other properties
}

然后在控制器

public Task Index()
{ 
   var marca = _context.GetMarca();

   //map marca to MyModel here
   var model = new MyModel()
   {
      Iva = marca.Iva,
      Path = marca.Path
      // other properties
   }

   return Index(model);


}

public async Task<IActionResult> Create(MyModel model)
{
     var entity = _context.GetEntityByID(model.Iva);
     entity.Path = model.Path
     //map other properties
     await _context.SaveChanges();
}

我更喜欢绑定不同的模型而不是绑定实体来查看。

答案 1 :(得分:0)

只需在控制器功能中使用[frombody]属性,因为httppost值来自请求的正文部分。