记netmvc中Html.BeginForm的大坑

记netmvc中Html.BeginForm的大坑

在asp.net mvc中,很常使用using(Html.BeginForm()){}来生成表单提交

不传入参数时,默认提交到原始url

最坑的是,此表单自动提交时,会将所在页面的原始url的参数也一并提交到后台

故,如果用Html.BeginForm生成的表单要在js中提交,则必须确保原始url的参数是否还有作用

 

例如:

  通过get /member/add?code=1得到页面

  此页面中使用了using(Html.BeginForm()){},但未将code作为表单数据

  然而点击表单中submit按钮自动提交时,post到后台/member/add,也能取到此code值,参数名还忽略大小写

  而若在js中写上$(form).submit()却不会有code,只提交表单中的数据

推荐阅读