添加了防伪标记的ASP.NET 5 vNext表单

时间:2015-05-27 19:32:02

标签: angularjs asp.net-core-mvc

我遇到一个问题,即简单form标记添加了actionmethod属性。还添加了一些隐藏的输入字段,我猜测它是防伪的。

以下是我在Razor View中添加的html:

<form>test</form>

以下是正在呈现的内容:

<form action="/company/adduser" method="post" class="ng-pristine ng-valid">
    test
    <input name="__RequestVerificationToken" type="hidden" value="CfDJ8KMbFT4ebnROrEREXkL-MYlPSgL0ISe6_sqTJXc982ocoWgKH1v_yCV2_5Qa9h8AmVFaNk0i0Wpa6gQlhWY-PHkZ929_Tkv1B-lCR7-aLyd53L2448CLQNtakb-UHQmLgPGCiQF0dj4jij9lc_sS7jRPjcGFnNjxdT_wobz-CsU3NvR-fm-a9r0MnqhflgwLLw">
</form>

由于我只使用asp.net MVC来提供HTML并在客户端上使用AngularJS,因此导致了重大问题。尝试使用action时,ng-submit方法会导致角度问题。

有谁知道:

  1. MVC是否会以某种方式自动添加防伪标记?
  2. 如何禁用此功能?

2 个答案:

答案 0 :(得分:5)

截至本文撰写时,这只是Form标记助手中的一个错误。它将被修复。

您可以通过添加!来从taghelper处理中排除Form(或任何元素)!如<!form></!form>

答案 1 :(得分:1)

问题在于Microsoft添加了新的TagHelpers,其中一个是<form>。它似乎正在添加所有额外的&#34;东西&#34;。

修改并更好地修复:

我最终将TagHelpers配置为具有前缀。在我_GlobalImport.cshtml我添加了:

@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"
@tagHelperPrefix "asp:"

这让我可以添加&#34; asp:&#34;在我想要渲染的任何TagHelpers前面。这也阻止了TagHelper呈现<form>标记。

Damien Edwards在Microsoft的ASP.NET团队中通知我,表单标签的问题是一个错误并将被修复。我仍然认为这些信息在此期间会有所帮助。

您还可以通过在前面添加!来阻止TagHelper呈现:<!form></!form>