2011-10-24 61 views
3

我有一些驗證Javascript文件,所有使用表單的頁面都應該包含這些文件。這個想法是以某種方式覆蓋Html.BeginForm,並在該覆蓋中添加所需的Javascript到我的ResourceManager(它最終將所有引用寫入HTML)。ASP.NET MVC 3重寫Html.BeginForm

我可以重寫Html.BeginForm還是創建另一個ExtensionMethod的唯一選項,如Html.MyBeginForm哪些JS包含內容然後調用原始的BeginForm

回答

0

我可以覆蓋Html.BeginForm或者是創建另一個 ExtensionMethod像Html.MyBeginForm

不能覆蓋Html.BeginForm輸出的唯一選擇。您將不得不編寫自定義擴展方法。或者更好的是,使用不顯眼的JavaScript將自定義邏輯附加到您的表單。 Html5 data- *屬性是將元數據附加到DOM元素的一種絕佳方式,可以通過使用.data()函數,不受干擾地利用JavaScript。這是不顯眼的客戶端驗證和不顯眼的AJAX在ASp.NET MVC中的工作方式。

0

只要您將JavaScript包含在您的主文件(或_Layout.cshtml或_Layout.vbhtml)文件中,您就不需要重寫任何內容。不顯眼的ajax可能是更好的方法。只需使用適當的重載將各種屬性附加到表單上即可。

如果您只想將JavaScript文件附加到具有表單的視圖中,則可以在主數據中包含條件部分,或者根據相關類別簡單地選擇其他主數據。

大師可以在其他主人。您可以擁有表單的主人和非表單的主人。兩者都可以使用包含佈局信息的通用基礎主控。

+0

是的我使用不顯眼的腳本,事情是我不想在每個頁面上包含這些腳本,只是在具有FORM元素的頁面上。 – jaap