asp.net - 从 formcollection 值中设置不同类型的对象属性值
问题描述
嗨,我必须从 FormCollection 值中设置不同类型的对象值。我有这个方法:
public void EditProduct(string category, FormCollection formCollection) //Edit choosen product.
{
var product = GetNewProduct(category);
var EfContext = GetEfContext(category);
foreach (var property in product.GetType().GetProperties())
{
var NewValue = formCollection[property.Name];
property.SetValue(product, NewValue);
}
EfContext.GetType().GetMethod("EditProduct").Invoke(EfContext, new object[] { product });
}
但是我收到关于从字符串转换为其他类型的对象的错误。我该如何解决?
解决方案
解决办法就是Convert.ChangeType()
方法。
public void EditProduct(string category, FormCollection formCollection) //Edit choosen product.
{
var product = GetNewProduct(category);
var EfContext = GetEfContext(category);
foreach (var property in product.GetType().GetProperties())
{
var NewValue = Convert.ChangeType(formCollection[property.Name], property.PropertyType);
property.SetValue(product, NewValue);
}
EfContext.GetType().GetMethod("EditProduct").Invoke(EfContext, new object[] { product });
}
推荐阅读
- ocaml - 不支持沙丘版本
- python-3.x - Sklearn 在手动训练期间停止损失高原
- python - SQL join 子句中的 table1.{0} == table2.{0} 是什么意思?
- dialogflow-es - DialogFlow with Telegram:如何接收图像并将其与对话一起保存
- jquery - Popover JS 抛出错误甚至已经包含
- react-native - this.setState 不是函数。React Native 新手
- docker - 尝试运行 apk add 时为 PowerPC (PPC64le) 构建基于 alpine 的图像失败
- javascript - 如何显示来自数据库的反应项目列表
- kubernetes - Spring Cloud Kubernetes + Spring Cloud Gateway:无法找到 k8s 服务的实例
- uml - 通过B类初始化A类变量时如何表示uml图