首页 / 网页编程 / ASP.NET / 使用自定义ViewHelper来简化Asp.net MVC view的开发 - part5(完)
        
            使用自定义ViewHelper来简化Asp.net MVC view的开发 - part5(完)2011-08-06 博客园 译:CareySon接上文..前面我们已经创建好了HtmlFieldSet,现在,为了让HtmlHelper的扩展方法可以使用这个类 ,还需要创建一个方法:NewHtmlFieldSetpublic static IViewObject NewHtmlFieldSet(
   this HtmlHelper htmlhelper, string name, string title, object  attributes)
{
   IViewObject viewObject = new HtmlFieldSet(
     new ViewRequestContext(htmlhelper), name, title, attributes);
   viewObject.StartView();
   return viewObject;
}这个方法的实现和前面所提到的那些没有上面不同,都是传入相应参数并返回view object,在View被 初始化时返回这个对象,View首先在初始化时使用返回的View object,更确切点说,返回的IViewObject 会在using语句中被view使用,例子如下:<% using (Html.NewHtmlFieldset("FieldsetName", "My Fieldset", null))
   { %>
   <li>
    <label for="FirstName">FirstName</label>
    <span id="FirstName"><%= Html.Encode(Model.FirstName) %></span>
   </li>
<% } %>对应生成的HTML代码如下:<fieldset name="FieldsetName">
  <legend>My Fieldset</legend>
  <ol>
    <li>
     <label for="FirstName">FirstName</label>
     <span id="FirstName">Sayed</span>
    </li>
  </ol>
</fieldset>EndView方法输出了最后的三个结尾标签(</li>,</ol>,</fieldset>),达到了 我们的预期,现在就可以使用view helper来创建fieldset以及包含在内的legend,以便达到更好的可理解 和可维护性。下面来看view helper是如何简化view的开发的。