asp.net-mvc-2 - 在jquery中,.NET MVC重定向视图页面从共享的文件夹中

  显示原文与译文双语对照的内容
122 2

我有一个 Test.aspx 页面,它包含在共享文件夹中。 我没有共享控制器。

当你从主页面获取结果数据时,我希望从主页面重定向到页面。

如何在没有相应控制器&的情况下重定向视图页面如何使用jquery实现这个目标?


window.location.href ="/path/";

是否可以不使用控制器重定向视图页。

时间: 原作者:

139 0

如何在没有相应控制器的情况下重定向视图页

不可能而且没有意义。 在 ASP.NET MVC视图中不能和不应该直接服务。

所以,首先声明一个控制器操作,它将返回这里视图,并在AJAX调用中指向它:


window.location.href ="somecontroller/someaction";

原作者:
128 2

你不能直接通过一个控制器请求视图,而不需要通过控制器。 它从来不是为那个( 在大多数情况下明确阻止它) 设计的。 也就是说,可以从控制器的动作返回什么视图,实际上默认的是这样做的。 典型的ASP.NET 应用程序不同,当发生异常时将你重定向到类似 error.aspx的页面。 但是,它不会将你从最初请求的页面中重定向到。 因这里,如果请求页查看 (People/Details/123)的细节并遇到错误,则URL将保持相同,但返回的视图将是错误视图。

记住 HandleErrorAttribute 属性不会处理在MVC之外发生的错误。 因此一般的IIS和 ASP.NET 错误将不会被它处理。

如果你想使用javascript重定向到错误视图,应该使用 HandleErrorAttribute 。 如果你想要一个全页不仅是一个视图,我建议向主控制器( 或者甚至创建一个叫做错误的控制器) 添加一个操作并请求页面。 如果你不喜欢使用 /Home/Error 或者 /Errors/Exception 请求页面,你总是可以向应用程序添加新路由,以便将它的缩短为/Error 或者/Exception. just


routes.MapRoute("ErrorPage",//Route name
"Error",//URL with parameters
 new {controller ="Home", action ="Error"});

或者


routes.MapRoute("ExceptionPage",//Route name
"Exception",//URL with parameters
 new {controller ="Errors", action ="Exception"});

原作者:
...