彻底解决ASP.NET MVC 3 404错误码返回302的问题

转自:http://blog.csdn.net/mycloudke/article/details/9746333

404状态码:,意味着当在页面上显示用户点击不存在,提高用户体验度,搜索引擎会放弃这个页面索引。

302状态码:搜索引擎将继续指数,这将导致大量不同的链接指向同一个页面,它将影响搜索引擎对站点的信任度。

http://www.cloudke.com.cn/ 后面随便带些参数或者不存在的文件名,然后跳转到自定义错误页,但返回的状态是302。

解决办法:

第一步:

将web.config的customErrors设为off

[csharp] view plaincopy

  1. <customErrors mode="Off">
  2. </customErrors>

然后自己处理定制错误信息,在Global.asax.cs中添加如下的代码:

[csharp] view plaincopy

  1. protected void Application_Error(Object sender, EventArgs e)
  2. {
  3. if (!Request.IsLocal)  //如果是在本地测试,则去掉!
  4. {
  5. Exception lastError = Server.GetLastError();
  6. if (lastError != null)
  7. {
  8. Response.StatusCode = 404;
  9. Response.WriteFile("~/Content/HtmlTemplate/NotFound.htm");  //输出NotFound.htm页面的内容。可以去掉所有的html标签,直接输入“报错”
  10. Server.ClearError();
  11. }
  12. }
  13. }

~/Content/HtmlTemplate/NotFound.htm文件只能为静态文件,这样就不走asp.net的mvc路由器了。

这样配制好后,发现还是有问题,本地访问404可以转到自定义页,但远程访问就不行了,还需要配制一下iis

打开错误页,编辑404页

这个文件路径就是自定义错误页404。

好了,再测试一下:

测试结果正常了。

彻底解决ASP.NET MVC 3 404错误码返回302的问题,布布扣,bubuko.com

时间: 2024-10-27 07:50:28

彻底解决ASP.NET MVC 3 404错误码返回302的问题的相关文章

ASP.NET MVC页面报错System.InvalidOperationException The view found at &#39;~/Views/Home/Index.cshtml&#39; was not created.

Application Exception System.InvalidOperationException The view found at '~/Views/Home/Index.cshtml' was not created. Description: HTTP 500.Error processing request. Details: Non-web exception. Exception origin (name of application or object): System

完全解决asp.net MVC中的session丢失问题

http://user.qzone.qq.com/136234428/blog/1410260445 完全解决asp.net MVC中的session丢失问题 http://user.qzone.qq.com/136234428/blog/1410260445 完全解决asp.net MVC中的session丢失问题 http://user.qzone.qq.com/136234428/blog/1410260445 完全解决asp.net MVC中的session丢失问题 http://use

如何解决Asp.Net MVC和WebAPI的Controller名称不能相同的问题

原文:如何解决Asp.Net MVC和WebAPI的Controller名称不能相同的问题 1.问题描述 假如有一个文章的业务(Article),我们在 Controllers文件夹中创建MVC Controller和Api Controller,各个Controller中都有相同的获取文章内容的Action(Content).路由为默认设置 MVC的路由为 {controller}/{action}/{id} Api的路由为 api/{controller}/{action}/{id} 然而我

解决asp.net mvc中*.resx资源文件访问报错

个人笔记 问题重现 在asp.net mvc中,使用资源文件会出现一个问题,例如: 紧接着我进入视图界面,输入下面代码: 1 <a href="javascript:void(0);">测试@KuaiLeYouNi.Web.AppResource.Space</a> 以上编译不会报错,但是运行是会报错:“编译器错误消息: CS0122: “KuaiLeYouNi.Web.AppResource”不可访问,因为它受保护级别限制” 问题解决 原来资源文件默认的访问修

解决ASP.NET MVC(post数据)Json请求太大,无法反序列化(The JSON request was too large to be deserialized)

这个问题出现的场景并不是很多,当你向服务端异步(ajax)post数据非常大的情况下(比如做权限管理的时候给某个角色分配权限那么就可能会出现,我所遇到的就是该角色大概200个模块每个模块平均2个功能----那么发送到服务端action的将是一个有着400个对象的数组) 之前我们向服务端异步post数组可能需要使用 1 $.ajax({ 2 type: 'POST', 3 url: '/system/SaveRoleReModule', 4 dataType: "json", 5 con

解决asp.net mvc UpdateModel更新对象后出现null问题的方法

在用asp.net mvc 4.0做项目的时候遇到的这种情况:情况分析:"在填写表单的时候,有一些表单没有填写,留空,然后直接post 提交表单,action中用UpdateModel 来更新model,结果发现那些没有填写的表单字段全部变成null."原因分析:项目中做了判断null不能提交更新到数据库中,所以导致一直提交不上去后来网上查了一下找到了解决办法,我在这里分享一下,方便以后遇到这种情况的朋友可以方便解决解决方法:新建一个类继承DefaultModelBinder usin

asp.net mvc 使用Ajax调用Action 返回数据【转】

使用asp.net mvc 调用Action方法很简单. 一.无参数方法. 1.首先,引入jquery-1.5.1.min.js 脚本,根据版本不同大家自行选择. <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 2.在Controllers中书写前台Ajax需要调用的Action,比如:

Asp.net mvc 使用Ajax调用Action 返回数据。

使用asp.net mvc 调用Action方法很简单. 一.无参数方法. 1.首先,引入jquery-1.5.1.min.js 脚本,根据版本不同大家自行选择. <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 2.在Controllers中书写前台Ajax需要调用的Action,比如:

在asp.net mvc模式中使用PartialView返回部分HTML

PartialView(返回HTML(局部)) 在asp.net mvc中返回View时使用的是ViewResult,它继承自ViewResultBase 同时它还有个兄弟PartialViewResult 相信聪明的你已经知道了它俩的区别了,没错 一个用于返回整体,另一个返回局部(部分). 假设我有这样一个需求,输入用户名,然后返回相关信息.之前的做法可能会是用json格式来返回用户的相关信息,然后到页面去渲染相关的HTML,如果产生的相关HTML比较大的话,我还是建议你沿用之前的方案(返回j