2010-05-07 82 views
0

我是用在asp.net mvc的1.0這個自定義的HTML幫助,但現在我想在2.0項目中使用它,它崩潰自定義HTML助手是不是在asp.net MVC工作2.0

http://blog.pagedesigners.co.nz/archive/2009/07/15/asp.net-mvc-ndash-validation-summary-with-2-forms-amp-1.aspx

這是我得到的錯誤。

System.MissingMethodException was unhandled by user code 
    Message=Method not found: 'System.String System.Web.Mvc.Html.ValidationExtensions.ValidationSummary(System.Web.Mvc.HtmlHelper)'. 
    Source=CustomHtmlHelpers 
    StackTrace: 
     at CustomHtmlHelpers.ActionValidationSummaryHelper.ActionValidationSummary(HtmlHelper html, String action) 
     at ASP.views_signin_signin_aspx.__RenderContent2(HtmlTextWriter __w, Control parameterContainer) in SignIn.aspx:line 23 
     at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) 
     at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) 
     at System.Web.UI.Control.Render(HtmlTextWriter writer) 
     at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) 
     at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) 
     at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) 
     at ASP.views_shared_site_master.__Render__control1(HtmlTextWriter __w, Control parameterContainer) Site.Master:line 64 
     at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) 
     at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) 
     at System.Web.UI.Control.Render(HtmlTextWriter writer) 
     at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) 
     at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) 
     at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) 
     at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) 
     at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) 
     at System.Web.UI.Page.Render(HtmlTextWriter writer) 
     at System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer) 
     at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) 
     at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) 
     at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) 
     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
    InnerException: 

我在同一個庫中的其他html helper可以工作。我將該命名空間添加到webconfig中。

代碼,我

public static class ActionValidationSummaryHelper 
    { 
     public static MvcHtmlString ActionValidationSummary(this HtmlHelper html, string action) 
     { 
      string currentAction = html.ViewContext.RouteData.Values["action"].ToString(); 

      if (currentAction.ToLower() == action.ToLower()) 
      { 
       return html.ValidationSummary(); 
      } 

      return MvcHtmlString.Empty; 
     } 

    } 
+0

發帖該方法的源代碼可能會有所幫助。 – 2010-05-15 14:30:29

+0

那麼它的代碼與鏈接相同,現在就是來自Charlino的新建議。 – chobo2 2010-05-15 18:03:51

回答

1

它抱怨它不能找到一個ValidationSummery方法返回一個字符串...所以我想這可能是因爲現在HtmlHelper.ValidationSummary()返回MvcHtmlString實例而不是System.String

我沒有測試過這一點,但嘗試改變你的擴展方法:

public static MvcHtmlString ActionValidationSummary(this HtmlHelper html, string action) 
{ 
    string currentAction = html.ViewContext.RouteData.Values["action"].ToString(); 

    if (currentAction.ToLower() == action.ToLower()) 
     return html.ValidationSummary(); 

    return MvcHtmlString.Empty; 
} 

讓我知道是否可行與否:-)

HTHS,
查爾斯

+0

嗯不,它似乎仍然無法正常工作。我收到了同樣的錯誤。 – chobo2 2010-05-10 06:07:30

+0

它仍然給出完全相同的例外? Web項目中的擴展方法還是單獨的類庫? – Charlino 2010-05-10 06:14:05

+0

似乎是同樣的例外。它在一個單獨的類庫中。 – chobo2 2010-05-10 17:23:10