一个控制器有2种方法。第一个将模型对象发送到视图。视图包含一个显示对象某些属性的表单,但用户输入新数据并由此完成对象并将其发送到第二个方法。看起来像这样:
1 种方法
[HttpGet]
public ActionResult Index(string Id)
{
return View(new DownloadModel() { Idfile = Id, IsIdCorrect = true });
}
表现
@using (Html.BeginForm("file", "download"))
{
<p>Id файла : <input type="text" name = "Idfile" value="@Model.Idfile"></p>
<p>Введите пароль от файла</p>
<p><input type="password" name="Password"/> </p>
<p><input type="submit"/></p>
}
2方法
[HttpPost]
public ActionResult file(DownloadModel model)
{ ...
问题 - 什么 html 控件可用于显示属性Model.Idfile而不是输入,以便它与密码一起进入第二种方法?现在我正在使用输入,但它不方便且不安全 - 用户可以开始输入自己的值,用什么替换它?
更新
我试图隐藏输入,但在某些浏览器上它仍然可见。
<input type="hidden" name="Idfile" value="@Model.Idfile">

您发送给客户端并从客户端接收的所有内容都可以在客户端更改,这是不可信的。因此,“在某些浏览器中”的段落应改为“在所有浏览器中”。如果您不希望它对
Idfile用户可见,则必须将其存储在服务器上,例如,在会话中。