如何将字符串转换为MVC控制器中的对象/模型引用/地址

本文关键字:对象 模型 地址 引用 控制器 字符串 转换 MVC | 更新日期: 2023-09-27 17:58:43

如果我存储了一个字符串,我如何将该字符串用作对象引用的一部分?

例如,如果我有一个字段名存储为字符串,当我在表中引用该字段时,我如何使用该字符串:

string thisismystring = fieldname
if (tablename.(this is where i want to use my string as a reference to the appropriate field) > 1)
{
    Do something here
}

感谢

如何将字符串转换为MVC控制器中的对象/模型引用/地址

如果您确实认为需要,可以通过对模型类型调用GetProperty,然后对返回的PropertyInfo调用GetValue来使用反射。GetValue获取您的模型类型的一个实例。

意识到返回的值是一个对象。要进行比较,您可能需要对其进行强制转换或转换,但这取决于您的逻辑。

// if this is your model ...
public class MyModel 
{
    public string FieldName {get;set;}
}
// this is what your Controler method would look like 
public ActionResult Check(string fieldname, string fieldValue)
{
   var tablename = new MyModel{ FieldName = "check"};
   var prop = typeof(MyModel).GetProperty(fieldname); 
   var value = prop.GetValue(tablename);
   // do notice value is here an Object, so you might want to Convert or Cast if needed
   if (value == fieldValue) 
   {
      "equal".Dump();
   }
   return View(tablename);
}
// and this is how your Controller method gets called
Check("FieldName","check");

请注意,反思会影响绩效。