[英]Decoration on ViewModel property to use a different name for binding
在MVC3上,有没有办法装饰ViewModel属性以使DefaultModelBinder
在请求中使用不同的名称?
例如,假设您有以下视图模型:
public class SomeModel
{
public string Direction {get;set;}
}
但是来自外部源(例如某些第三方组件)的Dir参数。
我知道自定义模型绑定器可以处理它,但我认为必须有一种方法来装饰属性,类似于动作参数可以使用Bind(Prefix="...")
的方式来定义该映射。
您可以随时创建另一个属性:
public class SomeModel
{
public string Direction {get;set;}
public string Dir
{
get { return this.Direction; }
set { this.Direction = value; }
}
}
我还要提到视图中使用的ViewModel(cshtml / vbhtml)不必与Post方法中使用的ViewModel相同。
好的,所以经过更多的研究,看到类似的问题,并在这里看到反馈,似乎我的问题的答案基本上是“ 不 ”。
没有开箱即用的方式,因此必须使用自定义绑定器或者应重命名属性。
可以在此处找到具有更详细答案的类似问题: 如何将URL参数绑定到具有不同名称的模型属性
我能够使用FromForm
属性在ASP.NET MVC Core中完成此FromForm
。
public class DataTableOrder
{
public int Column { get; set; }
[FromForm(Name = "Dir")]
public string Direction { get; set; }
}
文档: https : //docs.asp.net/en/latest/mvc/models/model-binding.html#customize-model-binding-behavior-with-attributes
但是,根据您是否执行GET或POST,您可能希望使用[FromQuery]
而不是[FromForm]
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.