首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ASP.NET MVC中,如何在维护“用户友好”URL的同时获取敏感数据?

在ASP.NET MVC中,如何在维护“用户友好”URL的同时获取敏感数据?
EN

Stack Overflow用户
提问于 2016-03-31 08:05:31
回答 3查看 84关注 0票数 0

我正在建立一个在线音乐商店,我有困难显示单一专辑的信息页面。

我希望url看起来像这样:www.musicshop.com/albums/artist_name/album_name

如何将这种url映射到Controller,以及如何传递相册的id (而不显示在url中)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-31 08:14:23

您要么需要使用artist_namealbum_name来查找相册,要么需要传递id

如果您正在使用artist_namealbum_name方法,您的控制器操作应该如下所示

代码语言:javascript
复制
public ActionResult Album(string artist_name, string album_name) 
{
    //get album by artist name and album name
}

这条路是

代码语言:javascript
复制
routes.MapRoute(name: "AlbumByArtistNameAndAlbumName",
                url: "albums/{artist_name}/{album_name}",
                defaults: new { controller = "Albums", action = "Album" });
票数 0
EN

Stack Overflow用户

发布于 2016-03-31 08:14:32

如果要将URL保持在当前格式,则需要post请求。为什么在URL中看到相册id会很糟糕呢?您也可以使用一些不同的方式来查询DB的相册,如'artist_name‘+ 'album_name’,并在它们上创建索引(以使查询速度更快),或者您甚至可以使用两个字段中的复合键,如果您认为这是有意义的话,可以完全删除id,尽管我不认为这是一个非常好的主意。

票数 0
EN

Stack Overflow用户

发布于 2016-03-31 08:14:45

你不能。使用GET的一个好处是这些URL适合包含在搜索引擎中。GET URL应该包含呈现页面所需的所有内容,否则来自Google的任何人都会有糟糕的体验。

要么从id + album_name派生artist_name,要么使URL看起来像www.musicshop.com/albums/id/artist_name/album_name

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36327561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档