如何让BeginForm默认使用标准的accept-charset?

时间:2013-10-03 00:50:44

标签: asp.net-mvc asp.net-mvc-3 webforms

我有一个我管理的网站,内容很多。由于我们必须处理国际字符,因此我希望所有表单都具有accept-charset="utf-8"属性。现在我必须记住,并让我的团队记得在我们网站的每个表格上明确设置:

@using (Html.BeginForm(null, null, FormMethod.Post, new { accept_charset = "utf-8" })) {
  <!-- content of form -->
}

我希望能够将整个网站配置为默认设置。总之,我想要这段代码:

@using (Html.BeginForm()) {
  <!-- content of form -->
}

生成此HTML:

<form action="/Teaching/Edit/2522" method="post" accept-charset="utf-8">
   <!-- content of form -->
</form>

我找不到任何让我这么做的事。

1 个答案:

答案 0 :(得分:2)

您可以创建一个包含静态mvcHtmlString方法的帮助器类。在其中,创建一个'beginDefaultForm'方法来返回包含默认选项的BeginForm语句:

表单助手:

public static class FormHelper
{
    public static MvcForm BeginDefaultForm(this HtmlHelper helper)
    {
        return helper.BeginForm("actionName", "controllerName", 
               FormMethod.Post, new { accept_charset = "utf-8" });
    }
}

查看:

// reference the form helper namespace
@using FormHelperNamespace

// call beginDefaultForm
@Html.BeginDefaultForm()

您可能需要使用actionName / controllerName来获取所需的路径。

希望这有帮助。