当 type = file 时在 TextBoxFor 中设置默认值

问题描述 投票:0回答:2

我正在使用

@Html.TextBoxFor
加载并可能在编辑页面上设置附件文件路径。我可以打开文件浏览器窗口并重置值。但是,我无法获取要随页面加载的当前值或默认值。这是我现在使用的语法:

@Html.TextBoxFor(model => item.Filepath, new { @value = item.Filepath, @type = "file" })
asp.net-mvc filepath html.textboxfor
2个回答
0
投票

如果我正确理解这个问题,那么您似乎正在尝试设置要打开的文件路径的默认值。简短的回答是你不能这样做。原因是,如果您能够在代码中设置文件路径,您就可以恶意地将路径设置为您想要从用户计算机窃取的内容,并通过客户端代码动态提交帖子。用户必须明确说出他想要浏览的位置。这是一项安全功能。


0
投票

如果您将其提供为

@value
,它将被模型值覆盖。 如果您将其提供为
Value
,它将覆盖模型值。

因此,如果您像这样更改代码,它应该可以工作:

@Html.TextBoxFor(model => item.Filepath, new { Value = item.Filepath, Type = "file" })

我很好奇,有谁知道,为什么它在剃刀中是这样实现的?我发现这种行为非常令人困惑,因为 HTML 属性名称根据定义是大小写不敏感的......

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.