MVC几种找不到资源的解决方式
在MVC中,controller中的Action和View中的.cshtml文件名称有一个对应的关系。
当不对应时,有以下几种情况发生:
一、找不到视图的错误
请求URL:http://localhost:13850/Customer/Create
controller中有对应的Action:

View中没有相应的视图
报错信息:

解决方式:在View中添加相应的View
二、找不到资源:
请求的URL:http://localhost:13850/Customer/Index
controller里没有相应的Action(有时候可能是在开发一段时间以后,修改了Action的名字,却没有相应的修改View的名字,但是请求的URL依然还是原来的导致的)
View里有相应的视图
错误信息:

解决方式,就是指定一个固定的“页”,在找不到资源时显示。具体如下:
Asp.Net MVC中的controller都是集成自Controller这个抽象类,在这个类中,定义了一个HandleUnknownAction 方法,左右就是在发生HTTP 404时,进行处理。
那么,我们可以在自己的controller里重写这个方法。

这样,在每次找不到相应的Action时,都能执行这个方法。去调用相应的View。
微软提供的方式是:
protected override void HandleUnknownAction(string actionName)
{
try {
this.View(actionName).ExecuteResult(this.ControllerContext);
} catch (InvalidOperationException ieox )
{
ViewData["error"] = "Unknown Action: \"" +Server.HtmlEncode(actionName) + "\"";
ViewData["exMessage"] = ieox.Message;
this.View("Error").ExecuteResult(this.ControllerContext);
}
}
也就是,输出错误页。
当然这也存在一个隐患,如果出现下面【三】的情况时,也就是只声明了一个HTTP.Post的方法,没有相应的Http.Get的同名方法,也能把通过这种方式,把页面加载出来。
怎么解决呢?答案就是:直接Response.Redirect("/",true),回到首页。
三、找不到资源:
请求URL:http://localhost:13850/Customer/Details
controller中的对应Action,定义为HTTP Post,且没有对应的Http Get的Action
View中有对应的视图
报错信息:

解决方式:加入一个同名Action,定义为HTTP GET:[AcceptVerbs(HttpVerbs.Get)]
四:这是我今天遇到的找半天没找到原因,最后看http://www.cnblogs.com/xyang/archive/2011/11/24/2262003.html才发现的

备注,感谢http://www.cnblogs.com/xyang/archive/2011/11/24/2262003.html提供的解决办法
MVC几种找不到资源的解决方式的更多相关文章
- js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式
js replace 全局替换 js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...
- ASP.NET MVC几种找不到资源的问题解决办法
转自:http://www.cnblogs.com/xyang/archive/2011/11/24/2262003.html 在MVC中,controller中的Action和View中的.csht ...
- https 页面中引入 http 资源的解决方式
相对协议 应用场景 浏览器默认是不允许在 https 里面引用 http 资源的,一般都会弹出提示框. 用户确认后才会继续加载,用户体验非常差. 而且如果在一个 https 页面里动态的引入 http ...
- https http 混合访问_https 页面中引入 http 资源的解决方式
解决android 5.0 webview不能加载http与https混合内容的问题 在使用WebView加载https资源文件时,如果认证证书不被Android认可,那么会出现无法成功加载对应资源问 ...
- NSNull floatValue intValue 找不到指定方法解决方式
最近遇到一个问题: 因为后台人员对于接口数据没有做空值处理.导致client接收到的有些数据为空(NSNull),而针对此类数据恰好client的存储结构为int和float类型.类型 ...
- 通过源码了解ASP.NET MVC 几种Filter的执行过程 在Winform中菜单动态添加“最近使用文件”
通过源码了解ASP.NET MVC 几种Filter的执行过程 一.前言 之前也阅读过MVC的源码,并了解过各个模块的运行原理和执行过程,但都没有形成文章(所以也忘得特别快),总感觉分析源码是大神 ...
- Android 找不到资源的问题
偶尔会遇到R.layout.***或R.id.***找不到资源的问题,明明在文件夹中有啊,那为什么嘞? 结合我自己遇到的情况和网上的资料,总结出以下几点可能的原因: 导入了android.R.这个是最 ...
- 了解ASP.NET MVC几种ActionResult的本质:JavaScriptResult & JsonResult
在之前的两篇文章(<EmptyResult & ContentResult>和<FileResult>)我们剖析了EmptyResult.ContentResult和F ...
- Xamarin Android提示找不到资源属性定义
Xamarin Android提示找不到资源属性定义 错误信息:”Resource.Attribute”未包含”actonBarSize”的定义Xamarin Android经常会出现找不到资源属性的 ...
随机推荐
- 【转】Linux防火墙(iptables)之黑名单
原文:https://www.jianshu.com/p/b221b790cb1e https://linux-audit.com/blocking-ip-addresses-in-linux-wit ...
- 2017年11月8日最新仿互站导航t5友价商城-9套模板首页都增加微信登陆
今天测试效果如下,直接看图吧,入口在下方,点击图片直达 把9套餐模板都添加了微信首页登陆,仿互站的导航,操作比互站还要方便,官方一直对https 支持不太友好,索性把所有的https bug都修复了, ...
- 怎样让孩子爱上设计模式 —— 7.适配器模式(Adapter Pattern)
怎样让孩子爱上设计模式 -- 7.适配器模式(Adapter Pattern) 标签: 设计模式初涉 概念相关 定义: 适配器模式把一个类的接口变换成client所期待的还有一种接口,从而 使原本因接 ...
- AngularJS中移动页面滚动穿透解决方案
()] + s[]) >= , preventDefault: false, click: IscrollAndroidBug.click() }); var _ele = document.g ...
- 如何导入外部Git仓库到中国源代码托管平台(Git@OSC)
git clone --bare http://git.rcrtm.com/git/dianli.git git clone --mirror https://git.oschina.net/cand ...
- Eclipse经常使用快捷键
Eclipse经常使用快捷键 1几个最重要的快捷键 代码助手:Ctrl+Space(中文简体操作系统是Alt+/) 高速修正:Ctrl+1 单词补全:Alt+/ 打开外部Java文档:Shift+F2 ...
- 算法笔记_214:第六届蓝桥杯软件类校赛真题(Java语言A组)
目录 1 题目一 2 题目二 3 题目三 4 题目四 5 题目五 6 题目六 7 题目七 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 题目一 一个串的子串是指该串的一个连续的局部.如果不要求连续 ...
- 微信小程序文本如何换行
替换<br/>标签 为 \n 使用 css 属性 :white-space:pre-wrap 举个例子: <view style="white-space:pre-wr ...
- Mongostat 2.6详解
Mongostat C:\Users\John>Mongostat connected to: 127.0.0.1 insert query update delete getmore comm ...
- go1.8之安装配置
说明: 之前学习过go语言(大概是0.9版本),后来更新太快,也没怎么使用,就荒废掉了,今年有项目需要用go开发,重新捡起. 这是我在学习go语言过程中整理的内容,这里记录下,也方便我以后查阅. 操作 ...