ASP.NET MVC C#实体转换为未知属性的未知类型

Cosmin-Alexandru Ciocirlan

我必须从未知的实体获取属性的类型,然后将字符串值解析为传递给操作的字符串值。

代码示例:

public ActionResult QuickEdit(int pk, string name, string value)
{
    var pext = Db.ProjectExtensions.Find(pk); 
    if (ModelState.IsValid)
    {
        var propertyInfo = pext.GetType().GetProperty(name); //get property
        propertyInfo.SetValue(pext, value, null); //set value of property

        Db.SaveChangesWithHistory(LoggedEmployee.EmployeeId);

        return Content("");
    }
}

不幸的是,它仅在属性为字符串类型时才起作用。如何将值解析为要为其设置值的属性的类型?

谢谢!

更新:

我试过:

propertyInfo.SetValue(pext, Convert.ChangeType(value, propertyInfo.PropertyType), null);

我得到

{"Invalid cast from 'System.String' to 'System.Nullable`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'."}
Cosmin-Alexandru Ciocirlan

我采用了ataravati的解决方案,并对其进行了一些修改,以使用可空类型。

解决方法如下:

public ActionResult QuickEdit(int pk, string name, string value)
{
    var pext = Db.ProjectExtensions.Find(pk); 
    if (ModelState.IsValid)
    {
        var propertyInfo = pext.GetType().GetProperty(name); //get property
        if (propertyInfo != null)
                {
                    var type = Nullable.GetUnderlyingType(propertyInfo.PropertyType) ?? propertyInfo.PropertyType;
                    var safeValue = (value == null) ? null : Convert.ChangeType(value, type);
                    propertyInfo.SetValue(pext, safeValue, null);
                }
        Db.SaveChangesWithHistory(LoggedEmployee.EmployeeId);

        return Content("");
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET MVC错误无法将类型数据模型隐式转换为实体

来自分类Dev

ASP.NET MVC angularjs未知提供程序错误

来自分类Dev

ASP.NET MVC angularjs未知提供程序错误

来自分类Dev

在ASP.Net MVC中将JSON转换为C#类

来自分类Dev

ASP.NET MVC属性路由

来自分类Dev

ASP.NET MVC读写设置属性

来自分类Dev

实体框架(ASP.NET MVC)的导航属性问题

来自分类Dev

LibreOffice在ASP.NET MVC中将XLSX转换为PDF

来自分类Dev

ASP.NET MVC DropDownList SelectedValue转换为ViewBag?

来自分类Dev

在ASP.NET MVC中将HTML转换为PDF

来自分类Dev

将asp.net Webform转换为MVC

来自分类Dev

在ASP.NET MVC中将HTML转换为PDF

来自分类Dev

在ASP.NET Core MVC中将XML转换为JSON

来自分类Dev

ASP.NET MVC:模型绑定中的类型转换

来自分类Dev

实体框架 asp.net mvc5-无法将 lambda 表达式转换为类型“字符串”,因为它不是委托类型

来自分类Dev

无法将类型“void”隐式转换为“object”asp.net.MVC

来自分类Dev

ASP.NET MVC。创建模型以转换为JSON对象(具有动态名称属性)

来自分类Dev

将C#控制台应用程序转换为ASP.NET MVC应用程序

来自分类Dev

图片上传MVC / Javascript / ASP.NET C#

来自分类Dev

asp.net MVC C#与没有ORM的SQL

来自分类Dev

asp.net MVC C#与没有ORM的SQL

来自分类Dev

发布不会更新部分[C#/ MVC / ASP.Net]

来自分类Dev

在ASP.NET MVC C#中验证表单

来自分类Dev

asp.net mvc c# 递归列出类别

来自分类Dev

c# - asp.net MVC 中的关系

来自分类Dev

C# - Asp.Net MVC 中的时区问题

来自分类Dev

使用 C# ASP.NET MVC 调用 REST API

来自分类Dev

优化 Web 图像(C# 和 ASP.NET MVC)

来自分类Dev

在 ViewModel ASP.NET MVC & C# 中分组数据

Related 相关文章

热门标签

归档