Asp.net mvc 发生验证错误时持久化QueryString参数
我有一个上传文件的形式,该文件有(名称nvarchar,FileData varbinary(max)) 名称和文件数据是必填字段 出于某种原因,FileData的验证(使用Required属性)不起作用,所以我搜索了internet,找到了一个Html帮助程序扩展方法,它可以呈现输入(文件)并对其进行验证 但问题是,当我将错误添加到模型状态并且Asp.net mvc 发生验证错误时持久化QueryString参数,asp.net-mvc,validation,asp.net-mvc-3,query-string,Asp.net Mvc,Validation,Asp.net Mvc 3,Query String,我有一个上传文件的形式,该文件有(名称nvarchar,FileData varbinary(max)) 名称和文件数据是必填字段 出于某种原因,FileData的验证(使用Required属性)不起作用,所以我搜索了internet,找到了一个Html帮助程序扩展方法,它可以呈现输入(文件)并对其进行验证 但问题是,当我将错误添加到模型状态并且return View()查询字符串中的returnUrl消失时,在这种情况下,如何持久化returnUrl和/或其他一些查询字符串变量 您可能会注意到
return View()
查询字符串中的returnUrl消失时,在这种情况下,如何持久化returnUrl和/或其他一些查询字符串变量
您可能会注意到,我不能使用
RedirectToAction
,我必须返回视图()
,以便验证摘要可以显示错误(希望名称字段保持其值)。简单的回答是,您不能以您喜欢的方式返回视图,也不能保留查询字符串参数
我要做的是将返回URL存储为视图模型的一部分
这样,当您返回视图()
时,您就可以访问所传递模型中的返回URL。这是(归功于Ivan Korytin)。您必须将参数作为表单操作的一部分放置(我已经对其进行了增强,以简单地重复查询字符串):
很好的解决方案,没有尝试过,但可以看到它的工作原理,当我有很多Url参数时,它们都可以成为视图模型的一部分,谢谢。
<form action="@Url.Action("CreateEntity", "Employee")?@(Request.QueryString)"
enctype="multipart/form-data" method="POST">
[HttpPost]
public ActionResult MyAction(MyAction model)
{
if (!ModelState.IsValid)
{
return View(model);
}