嗨女士們,先生們,助手與C#類?什麼時候用什麼
我是來自Java的Razor的新手。我對助手的角色略有困惑。它們與定義一個完成相同事情的C#類有什麼不同?你什麼時候使用助手來創建一個類並調用該類的方法?
也許,供參考的人可以使用this example。
也許爲了完成,在編寫Web應用程序時,Helpers和客戶端Javascript如何融合在一起?看起來他們會重疊嗎?
最佳,
喬治
嗨女士們,先生們,助手與C#類?什麼時候用什麼
我是來自Java的Razor的新手。我對助手的角色略有困惑。它們與定義一個完成相同事情的C#類有什麼不同?你什麼時候使用助手來創建一個類並調用該類的方法?
也許,供參考的人可以使用this example。
也許爲了完成,在編寫Web應用程序時,Helpers和客戶端Javascript如何融合在一起?看起來他們會重疊嗎?
最佳,
喬治
傭工想幫助你創建了等等,這將使你建立一個負責任的web應用程序的文本框,按鈕,鏈接HTML控件。而在mvc中,您有兩種主要類型的助手:Html助手和Ajax助手。要使用JavaScript助手,您應該使用Ajax助手。無論如何,你應該訪問這個鏈接,並閱讀mvc助手以及如何創建自定義助手。
仍然不知道我理解高層次的概念... –
所以你可以定義助手至少有兩種方法。這是一種方法。
namespace MvcHelpers.Helpers
{
public class ButtonHelper
{
public static MvcHtmlString SpecialButton(string id)
{
return new MvcHtmlString(String.Format("<input id=\"{0}\" type=\"button\" value=\"Special\"/>", id));
}
}
}
我認爲這是你是指什麼,當你說「C#類」來,但在現實中,他們都只是輔助函數也使得它更容易在您查看將要呈現的輸出HTML。
這裏是另一種設計助手的方法,這可能是你所說的「助手」。
namespace MvcHelpers.Helpers
{
public static class ButtonHelperExtension
{
public static MvcHtmlString SpecialButton(this HtmlHelper helper, string id)
{
return new MvcHtmlString(String.Format("<input id=\"{0}\" type=\"button\" value=\"Special\"/>", id));
}
}
}
這被稱爲助手擴展,現在我們可以像所有其他標準HTML助手一樣引用它。以下是我們在Razor視圖中引用這兩種助手的方式。
@{
ViewBag.Title = "Home";
}
@using MvcHelpers.Helpers;
<h2>Home Page</h2>
@ButtonHelper.SpecialButton("button1")
<br />
@Html.SpecialButton("button2")
兩種技術都達到了完全相同的結果。被引用爲Html.SpecialButton的是擴展方法。我看到的唯一優點是很明顯,它是一個HTML幫助程序,並不執行其他功能。熟悉使用HTML助手的人現在將在使用InteliSense時看到您的新功能。但他們仍然必須提供適當的使用條款才能顯示出來。所以相同的結果略有不同的語義。
Eeh?你的例子中的MyCustomHelpers ** IS **是一個靜態的C#類,使用方法'TwitterSearch(string value)'...使用這個助手與客戶端JS的不同之處在於助手執行處理服務器端,而*客戶端* JS做它...客戶端:) – khellang