Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过“传递模型”;重定向到“操作”;对浏览器中的URL字符串可见_C#_.net_Asp.net Mvc_Url Redirection - Fatal编程技术网

C# 通过“传递模型”;重定向到“操作”;对浏览器中的URL字符串可见

C# 通过“传递模型”;重定向到“操作”;对浏览器中的URL字符串可见,c#,.net,asp.net-mvc,url-redirection,C#,.net,Asp.net Mvc,Url Redirection,问题是我在模型中从同一个控制器的第一个动作到第二个动作传递一些数据 但模型中的数据在URL查询字符串中可见。 这是查询字符串可见的方式 现在 1-除了使用临时数据外,是否有任何解决方案可以在查询字符串中隐藏该数据 2-为什么从客户端重定向到操作 3-它似乎是通过重定向中的Get方法传递数据,是否有任何方法可以在Body(即Post)中传递数据 MVC RedirectToAction方法只需在响应中向客户端(本例中为浏览器)发送一个名为“Location”的HTTP头,并将状态代码设置为30

问题是我在模型中从同一个控制器的第一个动作到第二个动作传递一些数据 但模型中的数据在URL查询字符串中可见。

这是查询字符串可见的方式

现在

1-除了使用临时数据外,是否有任何解决方案可以在查询字符串中隐藏该数据

2-为什么从客户端重定向到操作


3-它似乎是通过重定向中的Get方法传递数据,是否有任何方法可以在Body(即Post)中传递数据

MVC RedirectToAction方法只需在响应中向客户端(本例中为浏览器)发送一个名为“Location”的HTTP头,并将状态代码设置为302“Found”,以指示建议的重定向。该标头包含指定视图的URL,并将所有模型数据放入querystring

客户端可以选择是否访问该URL。浏览器通常会自动跟随链接,因为这样做对用户很友好。其他HTTP客户端可能不会这样做。这就是它的工作原理——这对整个web来说是通用的,而不仅仅是MVC。重定向始终作为GET完成,不可能通过任何其他HTTP方法进行重定向

如果希望只显示视图而不重定向,请使用

return View("addLeaveEntitlement", result.Model)

然后只有一个请求,没有重定向,URL根本不会更改(甚至不会更改为“添加”视图的常规URL-这可能是可取的,也可能不是可取的)。

只需将ID传递给
addLeaveAuthentity(int ID)
方法,然后再次获取对象(并且不能重定向到POST方法)@StephenMuecke为什么通过客户端重定向?为什么不只是在内部?因为这是web的工作方式-你可以重定向:)重复使用
return View()
来显示不同的视图-通常这是不可取的-addLeaveAuthentication`url没有添加到浏览器历史记录中,如果用户将其添加到书签,它将返回错误的url。