我有一个上传文件表单,该文件有(名称nvarchar,FileData varbinary(max))
Name和FileData是必填字段
由于某种原因,FileData的验证(使用Required属性)不起作用,因此我在互联网上搜索并找到了一个Html Helper扩展方法,该方法呈现输入(文件)并可以验证它。
但问题是,当我将错误添加到模型状态并且return View()
查询字符串中的returnUrl消失了时,如何在这种情况下持久化returnUrl和/或其他一些查询字符串变量?
您可能会注意到,我无法使用RedirectToAction
,我必须return View()
以便验证摘要可以显示错误(并且希望名称字段保持其值)。
答案 0 :(得分:2)
简短的回答是,您无法以您希望的方式返回视图,并保留查询字符串参数。
我要做的是将返回网址存储为视图模型的一部分。
这样,当您return View()
时,您就可以访问您传递的模型中的返回网址。
答案 1 :(得分:0)
这是actually possible(致谢Ivan Korytin)。您必须将参数作为表单操作的一部分(我对其进行了增强,使其可以简单地重复查询字符串):
<form action="@Url.Action("CreateEntity", "Employee")?@(Request.QueryString)"
enctype="multipart/form-data" method="POST">
执行以下命令时,查询字符串(和GET
参数)现在将保留:
[HttpPost]
public ActionResult MyAction(MyAction model)
{
if (!ModelState.IsValid)
{
return View(model);
}