2011-10-24 24 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