当我使用HttpPost时,不应该在我的URL中隐藏表单值吗?
这是我用来生成付款确认页面的Razor代码:
@using (Html.BeginForm("Index", "Checkout", new { amount = Model.PackageCost, currency = "$", itemDescription = Model.PackageDescriptor, type = "digital" }, FormMethod.Post))
{
<input type="submit" value="Confirmar" class="btn primary frmsubmit" />
}
在我的HTML中,生成了这个:
<form action="/Checkout?amount=50&currency=%24&itemDescription=Paquete%20Gold50%20%7C%2050%24%20(59%20lances)&type=digital" method="post">
<input type="submit" value="Confirmar" class="btn primary frmsubmit" />
</form>
当我点击确认按钮提交表单时,这是我要引导的网址:
http://localhost:5868/Checkout?amount=50¤cy=%24&itemDescription=Paquete%20Gold50%20%7C%2050%24%20%2859%20lances%29&type=digital
那是什么给出的?如果值是POST表单,为什么不隐藏值?
答案 0 :(得分:4)
因为那些不是表单值,而是路由值。表单值是<input >
标记的值。
我假设您不需要任何路由值(省略第三个参数),而是创建具有适当默认值的<input ...>
标记。如果普通用户不应该看到它们,请使用<input type="hidden">
(这显然不是安全功能)。
您还应该使用反请求伪造令牌。