产品有一些无法更改的字段, 所以我想只用选定的字段绑定对象。
现在我正在做这个(下面)方式(比如手动绑定),但我相信有更好更干净的方式。如何将Model对象与只有选定字段的模型对象绑定?
[HttpPut]
public JsonResult update(Product editedProduct) {
Product originalProduct = unitOfWork.ProductRepository.Get(filter: q => q.no == editedProduct.no).Single();
originalProduct.name = editedProduct.name;
originalProduct.modelNo = editedProduct.modelNo;
originalProduct.size = editedProduct.size;
originalProduct.color = editedProduct.color;
originalProduct.description = editedProduct.description;
originalProduct.price = editedProduct.price;
//originalProduct.upc = editedProduct.upc; //UPC can not be changed
//originalProduct.sku = editedProduct.sku; //SKU can not be changed
unitOfWork.Save();
return Json(new { success = true });
}
请告诉我,
答案 0 :(得分:1)
好吧,不要这样做。
对于这种情况,您应该创建一个单独的ViewModel,只包含必要的字段。
答案 1 :(得分:1)
在我看来,这种方法绝对没有错。可以采用不同的方式做一些事情,但这并不意味着它会更好。
答案 2 :(得分:0)
我不会在类中公开setter。例如。
public class Product{
public string upc {get;}
}
这不允许设置属性。