Mad*_*dhu 5 c# asp.net-core-mvc tag-helpers asp.net-core
我目前正在努力,ASP.Net 5 custom taghelper并达成了以下要求.1.需要从属性中读取复杂对象,如下所示.
[楷模]
public class Page {
[HtmlAttributeName(page-size)]
public int size{ get;set; }
}
public class MyControl {
public Page page{ get;set; }
}
Run Code Online (Sandbox Code Playgroud)
[TagHelper类]
[TargetElement("MyControl", Attributes="page-size")]
public class MyControlTagHelper : TagHelper {
public Page page{ get;set; }
//Here i have process methods.
}
Run Code Online (Sandbox Code Playgroud)
现在我想在视图中获取页面大小值,如下所示.
但我不知道如上所述.到目前为止,我尝试过能够为属性提供完整的复杂对象,如下面的链接所示
http://www.mikesdotnetting.com/Article/275/custom-taghelpers-in-asp-net-mvc-6
那么我怎样才能读出复杂的属性值page-size呢?
从Page类中删除HtmlAttributeName
public class Page {
public int size{ get;set; }
}
Run Code Online (Sandbox Code Playgroud)
你不需要MyControl类
将HtmlAttributeName放在taghelper的PageProperty上
[TargetElement("MyControl", Attributes="page-info")]
public class MyControlTagHelper : TagHelper {
[HtmlAttributeName("page-info")]
public Page page{ get;set; }
//Here i have process methods.
}
Run Code Online (Sandbox Code Playgroud)
在您的视图中,为您的自定义标记添加标记,并从您的viewmodel传入Page对象
<MyControl page-info="@Model.Page"></MyControl>
Run Code Online (Sandbox Code Playgroud)
现在,您直接在page-info属性上传递Page对象,并且可以直接从process方法访问其成员.在process方法中测试它为null,如果为null则只设置output.SuppressOutput(); 返回;