ASP.NET MVC 3如何覆盖Html.BeginForm方法

3
我有一些验证Javascript文件,所有使用表单的页面都应该包含。想法是以某种方式覆盖Html.BeginForm,并在该覆盖中将所需的Javascript添加到我的ResourceManager中(最终将写入所有HTML引用)。
我可以覆盖Html.BeginForm吗?还是唯一的选择是创建另一个ExtensionMethod,例如Html.MyBeginForm,它执行JS包含操作,然后调用原始的BeginForm
2个回答

0
我能否覆盖Html.BeginForm或者唯一的选择是创建另一个 ExtensionMethod,例如 Html.MyBeginForm?
你不能重写Html.BeginForm的输出。您将需要编写自定义扩展方法。更好的方法是使用无侵入式JavaScript将自定义逻辑附加到表单上。 Html5 data-*属性是一种非常好的将元数据附加到DOM元素的方法,可以通过使用 .data() 函数来无侵入地利用JavaScript。这是在ASp.NET MVC中实现无侵入客户端验证和无侵入AJAX的方式。

0

只要在主文件(或_Layout.cshtml或_Layout.vbhtml)中包含您的JavaScript,您就不需要覆盖任何内容。不过,非侵入式ajax可能是更好的选择。只需使用适当的重载将各种属性附加到表单即可。

如果您只想将JavaScript文件附加到具有表单的视图,则可以在主文件中包含条件部分,或者根据相关类别选择不同的主文件。

主文件可以包含在其他主文件中。您可以为表单和非表单分别设置主文件。两者都可以使用包含布局信息的公共基础主文件。


是的,我正在使用不显眼的脚本,问题在于我不想在每个页面上都包含这些脚本,只想在具有表单元素的页面上包含它们。 - jaap

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接