官术网_书友最值得收藏!

Summary

In real life, chances are you will mix code-based routing configuration and attributes. In our example, we will be using localization features, which require a lot of configuration, typically code-based configuration. Attribute routing also has its place, because we can directly define accessible endpoints that do not need to be restricted by general routing templates. Route constraints are very powerful and should be used.

It is always good to start with the included default route template and go from there. It should be sufficient for around 80% of your needs. Others will either be defined through a custom route or routing attributes.

We saw in this chapter that security is something that needs to be taken into account, and using routing attributes for this purpose seems ideal, as we can immediately see what the security restrictions are by looking at controller methods.

We've seen the different ways in which we can configure routing, in other words, turning browser requests into actions. We looked at code-based and attribute-based routing and learned about some of their strengths and limitations. We found out how we can restrict URL parameters to be of certain types or match certain requirements, as well as how to prevent an action method from being called unless it matches a specific verb, HTTPS requirement, or request content type. Finally, we looked at how to use routes to direct to status code or error specific actions so as to return friendly error pages.

Quite a few of the topics covered in this chapter will surface again in later chapters. In the next chapter, we will be talking about probably the most important pieces of MVC, which were also the main subject of this chapter: controllers and actions.

主站蜘蛛池模板: 齐齐哈尔市| 平谷区| 澳门| 沭阳县| 辛集市| 磐石市| 汶川县| 襄垣县| 万全县| 石景山区| 焦作市| 富蕴县| 西丰县| 新巴尔虎左旗| 沙洋县| 察隅县| 巴里| 涟水县| 株洲市| 灵石县| 商南县| 古浪县| 乐清市| 辉县市| 泸州市| 明星| 德昌县| 蓝田县| 南京市| 利津县| 临夏县| 华容县| 隆德县| 山东| 西城区| 夏津县| 安远县| 桓仁| 桑植县| 宜丰县| 通州区|