C# 如何在Ajax.Beginform accept charset=";gb2312“;

C# 如何在Ajax.Beginform accept charset=";gb2312“;,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,我正在尝试向我的应用程序添加一个ajax表单。问题是我想以gb2312编码的形式传递输入。但是我没能做到 new {accept-charset="gb2312"} 正如建议的那样。我猜这是因为“accept charset”中的“-”打破了CSharp变量命名规则。我试图在“accept charset”前面添加一个“@”,但也没有成功。有人知道我应该用什么技巧来解决这个问题吗?MSDN是错误的:accept字符集不是有效的标识符 尝试使用BeginForm重载,该重载接受IDiction

我正在尝试向我的应用程序添加一个ajax表单。问题是我想以gb2312编码的形式传递输入。但是我没能做到

new {accept-charset="gb2312"} 

正如建议的那样。我猜这是因为“accept charset”中的“-”打破了CSharp变量命名规则。我试图在“accept charset”前面添加一个“@”,但也没有成功。有人知道我应该用什么技巧来解决这个问题吗?

MSDN是错误的:accept字符集不是有效的标识符

尝试使用BeginForm重载,该重载接受IDictionary HtmlatAttributes而不是对象

例如:

<% var attributes = new Dictionary<string, Object>();
   attributes.Add("accept-charset","gb2312");
   using (Ajax.BeginForm( "action", null, new AjaxOptions { ... }, attributes ))
   {
 %>

<% } %>


这是一种方法。我认为您需要设置请求头,但是只设置表单属性要简单得多。啊!希望您不介意我添加了一个示例。它确实有效,但必须稍加修改。var属性必须是Dictionary而不是Dictionary类型,否则生成的html不正确。您可以使用Dictionary文本使其更接近原始语法:var attributes=newdictionary{{“accept charset”,“gb2312”};