我有一个viewmodel,我用它来创建业务搜索过滤器对象。在我看来,我创建了一个像这样的动作链接......
@Html.ActionLink("Search Link",
actionName:="Index",
controllerName:="Jobs",
routeValues:=New MyFilterViewModel() With {.Field1 = "Some Value", .Field2 = "Some other value"}, htmlAttributes:=Nothing)
这很好用。它将viewmodel属性序列化为查询字符串参数,然后由控制器操作绑定。
过滤器视图模型虽然有很多其他属性,但大多数属性都不相关,但它们仍然在URL参数中序列化,即使大多数未设置。
有没有办法装饰modelview属性,所以只有在分配它们时才会序列化它们(不是默认值)?
答案 0 :(得分:2)
您可以在DefaultHandling
属性中使用[JsonProperty]
枚举。装饰你的房产喜欢。
示例强>:
[JsonProperty("MyProp", DefaultValueHandling = DefaultValueHandling.Ignore)]
public string MyProp { get; set; }