隐藏字段“ufprt”被添加到 Razor Umbraco 表单 - 为啥?

Posted

技术标签:

【中文标题】隐藏字段“ufprt”被添加到 Razor Umbraco 表单 - 为啥?【英文标题】:Hidden field "ufprt" being added to Razor Umbraco Form - Why?隐藏字段“ufprt”被添加到 Razor Umbraco 表单 - 为什么? 【发布时间】:2015-03-07 06:47:53 【问题描述】:

我有一张表格(如下),它张贴到 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' />

【问题讨论】:

【参考方案1】:

它将表单路由到正确的控制器/操作方法(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

【讨论】:

以上是关于隐藏字段“ufprt”被添加到 Razor Umbraco 表单 - 为啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Razor中设置隐藏值

如何在 Razor 视图中基于安全性隐藏特定元素,而视图中没有逻辑?

求助idea 数据库字段被隐藏,求如何显示

Android中WebView中的文本字段被键盘隐藏

将js变量或输入值传递给razor

javascript 将访客IP添加到隐藏字段中