我有一个表格(下面)张贴到umbraco表面控制器.
@using (Html.BeginUmbracoForm("AddToBasket","Basket")) { <h1>@Model.productSelectionModel.Product.Title - @Model.productSelectionModel.Product.Price.ToString("C")</h1> <ul> @foreach (var productOption in Model.productSelectionModel.ProductOptions) { <li>@productOption.Option.Title</li> @Html.DropDownList(productOption.Option.Id.ToString(),productOption.ValuesInoptions.ToSelectList(f => f.OptionValue.OptionValue1,f => f.Id.ToString(),"Select")); } </ul> <input type="submit" value="Add To Basket"> }
当我查看为此表单呈现的HTML时,似乎添加了一个名为ufprt的隐藏字段.有人知道这是什么吗?它为什么被添加,我没有在任何地方使用它(我不认为我是)
有任何想法吗?
<input name='ufprt' type='hidden' value='6C01896EF3D5F430F9ED041DD2B0D31F89FA969A085C6F4FDEC3C9D4B906846E7AA80041CEA12573E9F58C1740893B770AAE3319FAA8FA35C89A54D301CFE31B85ADC0D3D9506D208DB068D1257C5F0D5F1B3B90FD59A5C2938EED0A2EB1168AD4573CD5D043D47A8F1AA789E988CC614686B89BE57D35DA8EAAA110044C393F' />
解决方法
它是将表单路由到正确的控制器/操作方法(Umbraco能够通过该输入值而不是使用URL的典型MVC方法来路由表单).我相信这对于表面控制器是特别的(即,它不适用于普通控制器,API控制器或RenderMvcController).
另一个答案表明,它不是CSRF令牌.如果是,它可能会有一个名称为“__RequestVerificationToken”,如下所示:http://www.asp.net/web-api/overview/security/preventing-cross-site-request-forgery-%28csrf%29-attacks
编辑:此信息已添加到此处:https://github.com/kgiszewski/LearnUmbraco7/blob/a97e85e5ad17e2ba9fc463f02c76885911046b57/Chapter%2006%20-%20Surface%2C%20WebAPI%20and%20RenderMVC%20Controllers/02%20-%20Surface%20Controllers.md#special-routing
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。