你好朋友...
我有一个 mvc 项目和一个带有附件框的表单(例如 yahoo mail compose)
例如“create_request.cshtml”
我想:
每个用户填写字段并上传他/她的文件(当用户选择任何一个时,我通过 Ajax 发布每个文件)并在提交表单后,如果页面有错误(检查服务器端),用户会在响应中看到上传的文件页面(带有突出显示的错误的响应表单)...
我很好地实现了上述场景:
(Ajax+ Tempdata+ 提交前保存文件服务器端+ 提交表单前上传文件的拇指)
在我的控制器中:
public void KeepTempData(string name, string value)
{
TempData[name] = value;
}
在我看来,我通过另一个 ajax 代码上传每个文件名后将其发送到服务器:
ajaxPostData(KeepTempData, "Attachments", $('#Attachments').val());
但我有一个问题:
因为我使用TempData来保存上传的文件名列表,所以如果用户在当前页面中附加一个文件,然后在她/他的浏览器中打开一个新选项卡并转到“create_request”页面地址。他/她看到一个带有附件的空表格...
我的解决方案:
也许我可以使用每个页面(每个表单)的唯一键来解决这个问题,并将其保存在会话变量和每个页面请求的隐藏字段中>>使用:“Anti Forgery Token with a Salt”或“DateTime.Now”
我在网上找到了这篇文章。它的问题就像我的问题一样。它的解决方案就像我的解决方案一样。
MVC 中针对此问题的适当解决方案是什么???
当用户在浏览器的某些选项卡(如 firfox)中有不同的页面请求时,您对使用 TempData(或 Session)没有任何冲突的建议是什么?