【问题标题】:String to object (MVC model binding)字符串到对象(MVC 模型绑定)
【发布时间】:2014-02-20 19:55:15
【问题描述】:

所以我有一个字符串。我有一个类型和一个属性名称。是否可以根据控制器中Type和propertyName的当前模型绑定规则将字符串转换为对象?

例如,我有这个模型:

class foo {

  [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM dd yyyy}")]
  public DateTime Date { get; set; }
}

,还有这个字符串:

"01 01 1970",

我有 typeof(foo) 的值,我有属性的名称,“日期”。

如何根据当前的模型绑定规则和模型规则将其转换为对象(DateTime)?

因此,我需要类似的东西:

object GetModelProperty(string input, Type modelType, string propertyName) { ... }

谢谢!

【问题讨论】:

    标签: c# asp.net-mvc model-binding


    【解决方案1】:

    大多数情况下,您可以将视图模型转换为 Json 对象,然后使用 MVC

    在这种情况下,您不需要在视图中转换 json 数据。

    你可以使用类似这样的代码

    var date = Date;
    var viewModel = new ViewModel();
    var serializer = new JavaScriptSerializer();
    viewModel.JsonData = serializer.Serialize(data);
    
    return View("viewname", viewModel);
    

    然后在你使用的视图中

    <%= Model.JsonData %>
    

    【讨论】:

    • 但是我没有json? :)
    • 您是否尝试将代码以相同的格式输入?
    • 嗯?我在哪里提供类型和属性名称?
    • 我想你误会了。类型是动态的,属性名称也是如此。所以我需要类似:GetModelProperty(string input, Type type, string propertyName).
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 2013-04-02
    相关资源
    最近更新 更多