我目前正在开发一个ASP.NET核心自定义标记助手。我需要从属性中读取一个复杂的对象,如下所示:
模型
public class Page {
[HtmlAttributeName(page-size)]
public int size {get; set;}
}
public class MyControl {
public Page page {get; set;}
}TagHelper类
[TargetElement("MyControl", Attributes="page-size")]
public class MyControlTagHelper : TagHelper {
public Page page {get; set;}
//Here i have process methods.
}现在我想获得视图中的页面大小值,如下所示:
<MyControl page-size="4"></MyControl>我不知道怎么做。到目前为止,我尝试将完整的复杂对象提供给属性如本文所示。
如何将复杂对象的值读取为page-size
发布于 2015-07-06 21:00:51
从Page类中删除HtmlAttributeName
public class Page {
public int size{ get;set; }
}您不需要MyControl类
将HtmlAttributeName放在标记助手的PageProperty上
[TargetElement("MyControl", Attributes="page-info")]
public class MyControlTagHelper : TagHelper {
[HtmlAttributeName("page-info")]
public Page page{ get;set; }
//Here i have process methods.
}在视图中,为自定义标记放置标记,并从视图模型传入Page对象
<MyControl page-info="@Model.Page"></MyControl>现在,您将直接在page-info属性上传入Page对象,并且可以通过process方法直接访问其成员。在process方法中测试它是否为null,如果为null,只需设置output.SuppressOutput();返回;
发布于 2015-07-08 09:49:05
https://stackoverflow.com/questions/31246855
复制相似问题