您现在的位置是:亿华云 > 数据库
如何在 ASP.NET Core MVC 5 中处理未知的 Action
亿华云2025-10-09 13:40:26【数据库】1人已围观
简介本文转载自微信公众号「码农读书」,作者码农读书。转载本文请联系码农读书公众号。ASP.NET Core MVC 5 是一个轻量级,开源的,利于单元测试的基于 ASP.NET Core 运行时的 web
本文转载自微信公众号「码农读书」,中处知作者码农读书。中处知转载本文请联系码农读书公众号。中处知
ASP.NET Core MVC 5 是中处知一个轻量级,开源的中处知,利于单元测试的中处知基于 ASP.NET Core 运行时的 web 框架,在开发时你肯定会遇到不少那些 request 无法匹配 Action 的中处知情况,通常做法是中处知抛出 404,但有些场景下我希望能收口到统一一个 Action 去执行,中处知这篇文章我们将会讨论如何去处理那些未知 Action 的中处知收口。
创建 Controller
现在我们创建一个 AuthorController 类,中处知如下代码所示:
public class AuthorController : Controller { [HttpGet] public ActionResult Index() { return View(); } }未知 Action 的中处知问题
先抛出问题,然后再来看一下怎么解决,中处知假设现在在做一个 图书搜索系统,中处知你希望用户可以根据 作者名,中处知书名,文章标题 等条件去查询图书信息,云服务器提供商首先你需要知道目录所包含的所有作者,书籍,文章的详细信息,那么这个需求怎么实现呢?
为了实现需求,我肯定会先在 Views 文件夹下新增对应的 view 文件,比如 Authors.cshtml, Books.cshtml, Articles.cshtml,方便用户查询时导向各自的 view ,比如下面的请求。
/Author/Books /Author/Articles显而易见下面的 url 它可以非常利索的导向 AuthorController 下的 Index 方法。
/Author/Index回过头来,如果你在浏览器中输入如下两个url,这时候肯定会抛异常,很显然 AuthorControler 下并没有所谓的 Books 和 Articles 这两个 Action 方法。
/Author/Books /Author/Articles使用 routing 处理未知 Action
那如何对这些未知 Action 进行收口呢?可以使用 Routing 机制来解决此类问题,服务器托管如下代码所示:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "viewName", pattern: "{ controller}/{ *viewName}", defaults: new { action = "DisplayAnyView" }); }); }上面代码的意思是,使用视图名 (*viewName) 来匹配 Action,如果能找到对应的 Action 则可以进行渲染,如何找不到就默认跳到 DisplayAnyView 这个Action上,下面是 DisplayAnyView 方法的实现。
public IActionResult DisplayAnyView(string viewName) { return View(viewName); }完整的 AuthorController 代码如下:
public class AuthorController : Controller { [HttpGet] public ActionResult Index() { return View(); } public IActionResult DisplayAnyView(string viewName) { return View(viewName); } }接下来把程序跑起来后,输入:http://localhost:32172/Author/Books , 你会观察到 DisplayAnyView 方法中的断点被成功命中,如下图所示:
Action 是 Controller 下的 public & non-static 方法,它可以有效的将 request 请求匹配到对应的 action 上,然而当 request 所匹配的 action 不存在时将会抛出运行时异常,现在你可以避免这种情况了。服务器租用
译文链接:https://www.infoworld.com/article/3600794/how-to-handle-unknown-actions-in-aspnet-core-mvc-5.html
很赞哦!(2169)
相关文章
- 4、待所有域名查询结束后可在右侧点击导出结果,即可以excel的文件方式将查询到的结果导出。
- 只要我们做的是从目前的市场情况选择域名,从简单易记,从个性特征上,我们就可以找到一个好域名进行注册。域名注册进行域名记录和解析以及绑定网站后,客户可以通过URL登录您的网站。
- 4.选择顶级的域名注册服务商
- 好的域名注册手段是怎样的?新手必须掌握哪些方法?
- 如果你的潜在终端必须是这个米(域名),那么潜在终端并不多,也没有硬通货,那么你的域名应该在终端有兴趣购买时出售。否则,你可能得自己留着吃。
- 什么样的邮箱才是安全的电子邮件地址?
- 公司在注册域名时还需要确保邮箱的安全性。如果邮箱不安全,它只会受到攻击。攻击者可以直接在邮箱中重置密码并攻击用户。因此,有必要注意邮箱的安全性。
- 在数以亿计的网站中,我们应该抓住每一个可能带来宣传的机会,域名可以带有企业的名字,一般可以使用汉语拼音或者英语单词或者是相关缩写的形式,只要用户记住了你企业的名字,就能很容易的打出你的网站域名,同样的,记住了网站域名也能很快的记住你公司的名字。
- 第五步:重复第四步,直到找到正确的纪录。
- 个人域名转为公司需要什么条件?个人域名转为公司该怎么做?