快速业务通道

使用自定义ViewHelper来简化Asp.net MVC view的开发 - part5(完)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
e"); %>
       <% Html.NewText("Email", "Email"); %>
       <% Html.NewText("Phone", "Phone"); %>
       <% Html.NewRadioButtonGroup("Gender", Model.GenderList); %>

       <li>
         <input type="submit" value="Add contact" />
       </li>
     </ol>

   </fieldset>
   <% } %>
</asp:Content>

使用view helper的版本html大大减少(只有39行)而且更容易理解,这里需要注意view引入了 Sedodream.Web.Common.View命名空间,这使view helper扩展方法所必须的.Sedodream.Web.Common.View 命名空间包含在另一个程序集中,这样更方便你在整个小组内进行分发,使用View helper所带来的可理 解性只是使用它所带来好处的其中之一,它还会带来以下好处:

View更清爽,更容易理解

小组内遵循某些标准更容易

在修改时需要改变的地方更少

可利用回传的model state辅助生成代码

在前面我们提到了GetModelStateValue方法的使用。这个方法用于给HTML元素赋上它自己从View里回 传的值,而在view helper内可以给生成的html元素赋值.下面代码片段是 System.Web.Mvc.Html.InputExtensions源文件中的一部分,这里用来展示GetModelStateValue的用法:

case InputType.Radio:
   if (!usedModelState) {
     string modelStateValue = htmlHelper.GetModelStateValue(
       name, typeof(string)) as string;
     if (modelStateValue != null) {
       isChecked = String.Equals(
         modelStateValue, valueParameter, StringComparison.Ordinal);
       usedModelState = true;
     }
   }

上面代码先检查model state来看radio button是否被创建,如果radio button已经存在就可以查看 radio button是否已经被选中,当你创建自定义view helper时,你最好也在合适的地方支持类似(可以获 取当前html的元素)的功能。前面的HtmlText view helper已经说明了这一点。

文章到此已经将创建自定义view helper的方方面面都讲到了。

原文链接:http://mvcviewhelpers.codeplex.com/

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号