MVC几种找不到资源的问题解决办法
来源:互联网 发布:淘宝圭亚那粉趾 编辑:程序博客网 时间:2024/06/06 17:21
在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)]
- MVC几种找不到资源的问题解决办法
- MVC几种找不到资源的问题解决办法
- 下载FLV资源的几种办法
- No mapping found for HTTP request with URI 找不到图片或者其他的静态资源问题解决办法
- Ubuntu找不到eth0,但能找到eth1的问题解决办法
- Ubuntu找不到eth0,但能找到eth1的问题解决办法
- cocopods 一直报错找不到头文件的问题解决办法
- iOS新建PCH文件路径找不到的问题解决办法
- 找不到eth0,但能找到eth1的问题解决办法
- linux编译找不到apr问题解决办法
- 求逆元的几种办法
- Android 编译找不到资源文件的几种可能的原因
- 有关c#.net“无法加载 CSOpenGLC.dll:找不到指定的模块”的问题解决办法
- iOS随笔记-开发中遇到的#import头文件找不到的问题解决办法
- Ubuntu网卡找不到eth0,但能找到eth1的问题解决办法
- webpack打包vue项目后,一些文件图片路径找不到的问题解决办法
- Delphi的问题解决办法:
- ImageView的几种对图片的缩放处理 解决imageview放大图片后失真问题解决办法
- 我的博客
- MongoDB 分片的原理、搭建、应用(九)
- C语言中操作符的总结
- leetcode 652. Find Duplicate Subtrees Map记录 + 深度优先遍历DFS
- is too old(format 29) to work with client version '1.8.13(r1667537)'(expects format 31). you need to
- MVC几种找不到资源的问题解决办法
- Spring(四)---高级装配(2)
- 通过程序设计几何图形(Shape)、矩形(Rectangle)、圆形(Circle)、正方形(Square)几种类型, 能够利用接口和多态性计算几何图形的面积和周长并显示
- POJ 3096.Surprising Strings
- gradle 使用心得
- QTableWidget 基本操作(一)
- Android——API23以上需要的动态权限
- Spring IoC原理理解
- Android Crash的防护与追踪